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

Image * ReadOTBImage(ImageInfo *image_info,ExceptionInfo *exception)

{
  Quantum QVar1;
  ushort uVar2;
  Image *pIVar3;
  MagickBooleanType MVar4;
  uint uVar5;
  int iVar6;
  Quantum *pQVar7;
  int *piVar8;
  char *pcVar9;
  uint uVar10;
  int unaff_EDI;
  bool bVar11;
  size_t sVar12;
  ExceptionType severity;
  int local_28;
  uint local_24;
  int local_20;
  
  __x86_get_pc_thunk_di();
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (image_info->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,
                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  pIVar3 = AcquireImage(image_info,exception);
  MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);
  if (MVar4 == MagickFalse) {
    DestroyImageList(pIVar3);
    return (Image *)0x0;
  }
  uVar5 = ReadBlobByte(pIVar3);
  if ((uVar5 & 0x10) == 0) {
    sVar12 = ReadBlobByte(pIVar3);
    pIVar3->columns = sVar12;
    sVar12 = ReadBlobByte(pIVar3);
    pIVar3->rows = sVar12;
  }
  else {
    uVar2 = ReadBlobMSBShort(pIVar3);
    pIVar3->columns = (uint)uVar2;
    uVar2 = ReadBlobMSBShort(pIVar3);
    pIVar3->rows = (uint)uVar2;
  }
  if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {
    pcVar9 = (char *)(unaff_EDI + 0xa3e33);
    severity = CorruptImageError;
    sVar12 = 0x9d;
  }
  else {
    iVar6 = ReadBlobByte(pIVar3);
    if ((char)iVar6 == '\x01') {
      MVar4 = AcquireImageColormap(pIVar3,2,exception);
      if (MVar4 != MagickFalse) {
        if (image_info->ping == MagickFalse) {
          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);
          if (MVar4 == MagickFalse) {
            pIVar3 = DestroyImageList(pIVar3);
            return pIVar3;
          }
          local_24 = 0;
          local_20 = 0;
          local_28 = 0;
          if (0 < (int)pIVar3->rows) {
            do {
              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);
              if (pQVar7 == (Quantum *)0x0) break;
              if (0 < (int)pIVar3->columns) {
                uVar10 = 0;
                iVar6 = 0;
                uVar5 = 0;
                do {
                  if ((char)uVar10 == '\0') {
                    uVar5 = ReadBlobByte(pIVar3);
                    uVar10 = uVar10 & 0xff;
                    if (uVar5 == 0xffffffff) {
                      pcVar9 = (char *)(unaff_EDI + 0x84110);
                      severity = CorruptImageError;
                      sVar12 = 0xbb;
                      goto LAB_00228208;
                    }
                  }
                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {
                    QVar1 = 1.0;
                  }
                  else {
                    QVar1 = 0.0;
                  }
                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {
                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;
                  }
                  uVar10 = uVar10 + 1;
                  if ((char)uVar10 == '\b') {
                    uVar10 = 0;
                  }
                  iVar6 = iVar6 + 1;
                  pQVar7 = pQVar7 + pIVar3->number_channels;
                } while (iVar6 < (int)pIVar3->columns);
              }
              MVar4 = SyncAuthenticPixels(pIVar3,exception);
              if (MVar4 == MagickFalse) break;
              uVar5 = pIVar3->rows;
              if (pIVar3->previous == (_Image *)0x0) {
                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),
                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);
                if (MVar4 == MagickFalse) break;
                uVar5 = pIVar3->rows;
              }
              local_28 = local_28 + 1;
              bVar11 = 0xfffffffe < local_24;
              local_24 = local_24 + 1;
              local_20 = local_20 + (uint)bVar11;
            } while (local_28 < (int)uVar5);
          }
          SyncImage(pIVar3,exception);
          iVar6 = EOFBlob(pIVar3);
          if (iVar6 != 0) {
            piVar8 = __errno_location();
            pcVar9 = GetExceptionMessage(*piVar8);
            ThrowMagickException
                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,
                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)
                       ,pIVar3->filename,pcVar9);
            DestroyString(pcVar9);
          }
        }
        CloseBlob(pIVar3);
        pIVar3 = GetFirstImageInList(pIVar3);
        return pIVar3;
      }
      pcVar9 = (char *)(unaff_EDI + 0x7743f);
      severity = ErrorException;
      sVar12 = 0xa2;
    }
    else {
      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);
      severity = CoderError;
      sVar12 = 0xa0;
    }
  }
LAB_00228208:
  ThrowMagickException
            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,
             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);
  CloseBlob(pIVar3);
  DestroyImageList(pIVar3);
  return (Image *)0x0;
}



undefined4 FUN_00227f90(int param_1,int param_2)

{
  undefined8 uVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  undefined4 uVar6;
  int *piVar7;
  uint uVar8;
  int iVar9;
  int unaff_EDI;
  bool bVar10;
  undefined4 uVar11;
  undefined *puVar12;
  int local_28;
  uint local_24;
  int local_20;
  
  FUN_0004c803();
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,
                   param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  iVar3 = AcquireImage(param_1,param_2);
  iVar4 = OpenBlob(param_1,iVar3,2,param_2);
  if (iVar4 == 0) {
    DestroyImageList(iVar3);
    return 0;
  }
  uVar5 = ReadBlobByte(iVar3);
  if ((uVar5 & 0x10) == 0) {
    uVar6 = ReadBlobByte(iVar3);
    *(undefined4 *)(iVar3 + 0x18) = uVar6;
    uVar6 = ReadBlobByte(iVar3);
    *(undefined4 *)(iVar3 + 0x1c) = uVar6;
  }
  else {
    uVar5 = ReadBlobMSBShort(iVar3);
    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;
    uVar5 = ReadBlobMSBShort(iVar3);
    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;
  }
  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {
    puVar12 = &UNK_000a3e33 + unaff_EDI;
    uVar11 = 0x1a9;
    uVar6 = 0x9d;
  }
  else {
    cVar2 = ReadBlobByte(iVar3);
    if (cVar2 == '\x01') {
      iVar4 = AcquireImageColormap(iVar3,2,param_2);
      if (iVar4 != 0) {
        if (*(int *)(param_1 + 0x1bc) == 0) {
          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),
                                 param_2);
          if (iVar4 == 0) {
            uVar6 = DestroyImageList(iVar3);
            return uVar6;
          }
          local_24 = 0;
          local_20 = 0;
          local_28 = 0;
          if (0 < *(int *)(iVar3 + 0x1c)) {
            do {
              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)
              ;
              if (iVar4 == 0) break;
              if (0 < *(int *)(iVar3 + 0x18)) {
                uVar8 = 0;
                iVar9 = 0;
                uVar5 = 0;
                do {
                  if ((char)uVar8 == '\0') {
                    uVar5 = ReadBlobByte(iVar3);
                    uVar8 = uVar8 & 0xff;
                    if (uVar5 == 0xffffffff) {
                      puVar12 = &UNK_00084110 + unaff_EDI;
                      uVar11 = 0x1a9;
                      uVar6 = 0xbb;
                      goto LAB_00228208;
                    }
                  }
                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {
                    uVar1 = 0x3ff0000000000000;
                  }
                  else {
                    uVar1 = 0;
                  }
                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {
                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;
                  }
                  uVar8 = uVar8 + 1;
                  if ((char)uVar8 == '\b') {
                    uVar8 = 0;
                  }
                  iVar9 = iVar9 + 1;
                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;
                } while (iVar9 < *(int *)(iVar3 + 0x18));
              }
              iVar4 = SyncAuthenticPixels(iVar3,param_2);
              if (iVar4 == 0) break;
              iVar4 = *(int *)(iVar3 + 0x1c);
              if (*(int *)(iVar3 + 0x333c) == 0) {
                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);
                if (iVar4 == 0) break;
                iVar4 = *(int *)(iVar3 + 0x1c);
              }
              local_28 = local_28 + 1;
              bVar10 = 0xfffffffe < local_24;
              local_24 = local_24 + 1;
              local_20 = local_20 + (uint)bVar10;
            } while (local_28 < iVar4);
          }
          SyncImage(iVar3,param_2);
          iVar4 = EOFBlob(iVar3);
          if (iVar4 != 0) {
            piVar7 = __errno_location();
            uVar6 = GetExceptionMessage(*piVar7);
            ThrowMagickException
                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,
                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);
            DestroyString(uVar6);
          }
        }
        CloseBlob(iVar3);
        uVar6 = GetFirstImageInList(iVar3);
        return uVar6;
      }
      puVar12 = (undefined *)(unaff_EDI + 0x7743f);
      uVar11 = 400;
      uVar6 = 0xa2;
    }
    else {
      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);
      uVar11 = 0x1c2;
      uVar6 = 0xa0;
    }
  }
LAB_00228208:
  ThrowMagickException
            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,
             unaff_EDI + 0x79aa9,param_1 + 0x21f0);
  CloseBlob(iVar3);
  DestroyImageList(iVar3);
  return 0;
}


PUSH EBP
PUSH EDI
CALL 0x0004c803
ADD EDI,0x1b1069
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x40]
TEST EAX,EAX
JZ 0x0022846e
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [EAX + 0x31f4],0xabacadab
JNZ 0x002284b0
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x31f0]
TEST EAX,EAX
JNZ 0x002282c0
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JZ 0x0022844d
MOV EAX,dword ptr [ESP + 0x44]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x0022848f
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x4c]
CALL 0x000313c0
ADD ESP,0x10
PUSH dword ptr [ESP + 0x44]
PUSH 0x2
MOV ESI,EAX
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00228388
SUB ESP,0xc
PUSH ESI
CALL 0x00030c90
ADD ESP,0x10
TEST AL,0x10
JZ 0x00228190
SUB ESP,0xc
PUSH ESI
CALL 0x00033ab0
MOVZX EAX,AX
MOV dword ptr [ESI + 0x18],EAX
MOV dword ptr [ESP],ESI
CALL 0x00033ab0
ADD ESP,0x10
MOVZX EAX,AX
MOV dword ptr [ESI + 0x1c],EAX
MOV EBP,dword ptr [ESI + 0x18]
TEST EBP,EBP
JZ 0x00228300
MOV EBX,dword ptr [ESI + 0x1c]
TEST EBX,EBX
JZ 0x00228300
SUB ESP,0xc
MOV EBX,EDI
PUSH ESI
CALL 0x00030c90
ADD ESP,0x10
CMP AL,0x1
JNZ 0x00228340
SUB ESP,0x4
PUSH dword ptr [ESP + 0x48]
PUSH 0x2
PUSH ESI
CALL 0x000324e0
ADD ESP,0x10
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0x40]
JZ 0x0022842a
MOV ECX,dword ptr [EAX + 0x1bc]
TEST ECX,ECX
JNZ 0x00228298
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESI + 0x1c]
PUSH dword ptr [ESI + 0x18]
PUSH ESI
CALL 0x00031910
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00228370
MOV EDX,dword ptr [ESI + 0x1c]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x14],0x0
TEST EDX,EDX
JLE 0x00228272
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x4c]
PUSH 0x1
PUSH dword ptr [ESI + 0x18]
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
PUSH ESI
CALL 0x00032e70
ADD ESP,0x20
MOV ECX,EAX
TEST EAX,EAX
JZ 0x00228272
MOV EAX,dword ptr [ESI + 0x18]
TEST EAX,EAX
JLE 0x00228230
XOR EDX,EDX
XOR EBP,EBP
XOR EAX,EAX
JMP 0x00228175
FLD1
MOV EBX,dword ptr [ESI + 0x2a8]
CMP dword ptr [EBX + 0x40],0x0
JZ 0x00228150
MOV EBX,dword ptr [EBX + 0x44]
FSTP qword ptr [ECX + EBX*0x8]
JMP 0x00228152
FSTP ST0
ADD EDX,0x1
MOV EBX,0x0
CMP DL,0x8
CMOVZ EDX,EBX
MOV EBX,dword ptr [ESI + 0x298]
ADD EBP,0x1
CMP dword ptr [ESI + 0x18],EBP
LEA ECX,[ECX + EBX*0x8]
JLE 0x00228230
TEST DL,DL
JZ 0x002281b0
MOV EBX,0x7
SUB EBX,EDX
BT EAX,EBX
JNC 0x00228130
FLDZ
JMP 0x00228132
SUB ESP,0xc
PUSH ESI
CALL 0x00030c90
MOV dword ptr [ESI + 0x18],EAX
MOV dword ptr [ESP],ESI
CALL 0x00030c90
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],EAX
JMP 0x00228057
MOV dword ptr [ESP + 0x10],ECX
SUB ESP,0xc
MOV EBX,EDI
MOV byte ptr [ESP + 0x1b],DL
PUSH ESI
CALL 0x00030c90
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP + 0xf]
CMP EAX,-0x1
MOV ECX,dword ptr [ESP + 0x10]
JNZ 0x00228179
MOV EAX,dword ptr [ESP + 0x40]
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EDI + 0xffec8a40]
PUSH EAX
LEA EAX,[EDI + 0xffed30a7]
PUSH EAX
PUSH 0x1a9
PUSH 0xbb
LEA EAX,[EDI + 0xfff2acd0]
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH EAX
PUSH dword ptr [ESP + 0x60]
CALL 0x00032e80
ADD ESP,0x14
PUSH ESI
CALL 0x000311d0
MOV dword ptr [ESP],ESI
CALL 0x000317a0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x4c]
PUSH ESI
CALL 0x000323a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00228272
MOV EDX,dword ptr [ESI + 0x333c]
MOV EAX,dword ptr [ESI + 0x1c]
TEST EDX,EDX
JZ 0x002283a0
ADD dword ptr [ESP + 0x14],0x1
MOV ECX,dword ptr [ESP + 0x14]
ADD dword ptr [ESP + 0x18],0x1
ADC dword ptr [ESP + 0x1c],0x0
CMP EAX,ECX
JG 0x002280ed
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x4c]
PUSH ESI
CALL 0x000334c0
MOV dword ptr [ESP],ESI
CALL 0x00030ee0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x002283cf
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,EDI
PUSH ESI
CALL 0x000311d0
MOV dword ptr [ESP],ESI
CALL 0x00031a70
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EBX,EDI
MOV EAX,dword ptr [ESP + 0x48]
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EDI + 0xffedde4e]
PUSH EAX
LEA EAX,[EDI + 0xfff2acd0]
PUSH 0x83
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x00227fd4
MOV EAX,dword ptr [ESP + 0x40]
MOV EBX,EDI
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EDI + 0xffec8a40]
PUSH EAX
LEA EAX,[EDI + 0xffef2dca]
PUSH EAX
LEA EAX,[EDI + 0xfff2acd0]
PUSH 0x1a9
PUSH 0x9d
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH EAX
PUSH dword ptr [ESP + 0x60]
JMP 0x00228208
MOV EAX,dword ptr [ESP + 0x40]
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EDI + 0xffec8a40]
PUSH EAX
LEA EAX,[EDI + 0xfff2aca2]
PUSH EAX
PUSH 0x1c2
PUSH 0xa0
JMP 0x002281f6
SUB ESP,0xc
PUSH ESI
CALL 0x000317a0
ADD ESP,0x10
JMP 0x002282ae
SUB ESP,0xc
PUSH ESI
CALL 0x000317a0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x002282ae
SUB ESP,0x8
XOR EDX,EDX
PUSH EDX
PUSH EAX
LEA EAX,[EDI + 0xffed1c0b]
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
PUSH ESI
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00228272
MOV EAX,dword ptr [ESI + 0x1c]
JMP 0x00228257
CALL 0x000305f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00031c10
MOV dword ptr [ESP],EAX
MOV EBP,EAX
LEA EAX,[ESI + 0x318]
PUSH EAX
LEA EAX,[EDI + 0xffec5bcb]
PUSH EAX
LEA EAX,[EDI + 0xffef2dde]
PUSH EAX
LEA EAX,[EDI + 0xfff2acd0]
PUSH 0x1a9
PUSH 0xd0
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH EAX
PUSH dword ptr [ESP + 0x70]
CALL 0x00032e80
ADD ESP,0x24
PUSH EBP
CALL 0x00032950
ADD ESP,0x10
JMP 0x00228298
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EDI + 0xffec8a40]
PUSH EAX
LEA EAX,[EDI + 0xffec63d6]
PUSH EAX
PUSH 0x190
PUSH 0xa2
JMP 0x002281f6
LEA EAX,[EDI + 0xfff2ace0]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH 0x85
PUSH EAX
LEA EAX,[EDI + 0xffec6a3c]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xfff2ace0]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH 0x80
PUSH EAX
LEA EAX,[EDI + 0xffec5b00]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xfff2ace0]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH 0x86
PUSH EAX
LEA EAX,[EDI + 0xffec776c]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xfff2ace0]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff2ac95]
PUSH 0x81
PUSH EAX
LEA EAX,[EDI + 0xffec5b28]
PUSH EAX
CALL 0x000313d0
(translation_unit "undefined4 FUN_00227f90(int param_1,int param_2)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00227f90(int param_1,int param_2)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" type_identifier (function_declarator "FUN_00227f90(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004c803();" (call_expression "FUN_0004c803()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b69)" ( (binary_expression "unaff_EDI + 0x76b69" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b91)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b91)" ( (binary_expression "unaff_EDI + 0x76b91" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" ( (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" * (cast_expression "(int *)(param_1 + 0x31f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f0)" ( (binary_expression "param_1 + 0x31f0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" identifier (argument_list "(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" ( number_literal , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x8eeb7" identifier + number_literal) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x77aa5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77aa5)" ( (binary_expression "unaff_EDI + 0x77aa5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x787d5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x787d5)" ( (binary_expression "unaff_EDI + 0x787d5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar3 = AcquireImage(param_1,param_2);" (assignment_expression "iVar3 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = OpenBlob(param_1,iVar3,2,param_2);" (assignment_expression "iVar4 = OpenBlob(param_1,iVar3,2,param_2)" identifier = (call_expression "OpenBlob(param_1,iVar3,2,param_2)" identifier (argument_list "(param_1,iVar3,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(iVar3);\n    return 0;\n  }" { (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" if (parenthesized_expression "((uVar5 & 0x10) == 0)" ( (binary_expression "(uVar5 & 0x10) == 0" (parenthesized_expression "(uVar5 & 0x10)" ( (binary_expression "uVar5 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }" { (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" else (compound_statement "{\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" { (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" identifier = (call_expression "ReadBlobMSBShort(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffff" identifier & number_literal)) ;) (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" identifier = (call_expression "ReadBlobMSBShort(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffff" identifier & number_literal)) ;) }))) (if_statement "if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" if (parenthesized_expression "((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x18) == 0" (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }" { (expression_statement "puVar12 = &UNK_000a3e33 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_000a3e33 + unaff_EDI" identifier = (binary_expression "&UNK_000a3e33 + unaff_EDI" (pointer_expression "&UNK_000a3e33" & identifier) + identifier)) ;) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" identifier = number_literal) ;) (expression_statement "uVar6 = 0x9d;" (assignment_expression "uVar6 = 0x9d" identifier = number_literal) ;) }) (else_clause "else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" else (compound_statement "{\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" { (expression_statement "cVar2 = ReadBlobByte(iVar3);" (assignment_expression "cVar2 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }" { (expression_statement "iVar4 = AcquireImageColormap(iVar3,2,param_2);" (assignment_expression "iVar4 = AcquireImageColormap(iVar3,2,param_2)" identifier = (call_expression "AcquireImageColormap(iVar3,2,param_2)" identifier (argument_list "(iVar3,2,param_2)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" { (if_statement "if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) == 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" { (expression_statement "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);" (assignment_expression "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" identifier = (call_expression "SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" identifier (argument_list "(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" { (expression_statement "uVar6 = DestroyImageList(iVar3);" (assignment_expression "uVar6 = DestroyImageList(iVar3)" identifier = (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar3 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" { (do_statement "do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);" do (compound_statement "{\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            }" { (expression_statement "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;" (assignment_expression "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier = (call_expression "QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier (argument_list "(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" ( (binary_expression "0 < *(int *)(iVar3 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                }" { (if_statement "if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" if (parenthesized_expression "((char)uVar8 == '\0')" ( (binary_expression "(char)uVar8 == '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" { (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) (if_statement "if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" { (expression_statement "puVar12 = &UNK_00084110 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_00084110 + unaff_EDI" identifier = (binary_expression "&UNK_00084110 + unaff_EDI" (pointer_expression "&UNK_00084110" & identifier) + identifier)) ;) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" identifier = number_literal) ;) (expression_statement "uVar6 = 0xbb;" (assignment_expression "uVar6 = 0xbb" identifier = number_literal) ;) (goto_statement "goto LAB_00228208;" goto statement_identifier ;) })) })) (if_statement "if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }" if (parenthesized_expression "((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1)" ( (binary_expression "uVar5 >> (7 - uVar8 & 0x1f) & 1" (binary_expression "uVar5 >> (7 - uVar8 & 0x1f)" identifier >> (parenthesized_expression "(7 - uVar8 & 0x1f)" ( (binary_expression "7 - uVar8 & 0x1f" (binary_expression "7 - uVar8" number_literal - identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    uVar1 = 0x3ff0000000000000;\n                  }" { (expression_statement "uVar1 = 0x3ff0000000000000;" (assignment_expression "uVar1 = 0x3ff0000000000000" identifier = number_literal) ;) }) (else_clause "else {\n                    uVar1 = 0;\n                  }" else (compound_statement "{\n                    uVar1 = 0;\n                  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) }))) (if_statement "if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x40)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x40" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" { (expression_statement "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;" (assignment_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1" (pointer_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" ( (binary_expression "iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x44)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x44" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "((char)uVar8 == '\b')" ( (binary_expression "(char)uVar8 == '\b'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8" identifier = (binary_expression "iVar4 + *(int *)(iVar3 + 0x298) * 8" identifier + (binary_expression "*(int *)(iVar3 + 0x298) * 8" (pointer_expression "*(int *)(iVar3 + 0x298)" * (cast_expression "(int *)(iVar3 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar3 + 0x18))" ( (binary_expression "iVar9 < *(int *)(iVar3 + 0x18)" identifier < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar4 = SyncAuthenticPixels(iVar3,param_2);" (assignment_expression "iVar4 = SyncAuthenticPixels(iVar3,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar3,param_2)" identifier (argument_list "(iVar3,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x333c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x333c) == 0" (pointer_expression "*(int *)(iVar3 + 0x333c)" * (cast_expression "(int *)(iVar3 + 0x333c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x333c)" ( (binary_expression "iVar3 + 0x333c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" { (expression_statement "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);" (assignment_expression "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" identifier = (call_expression "SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" identifier (argument_list "(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" ( identifier , (binary_expression "&UNK_00082c74 + unaff_EDI" (pointer_expression "&UNK_00082c74" & identifier) + identifier) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = 0xfffffffe < local_24;" (assignment_expression "bVar10 = 0xfffffffe < local_24" identifier = (binary_expression "0xfffffffe < local_24" number_literal < identifier)) ;) (expression_statement "local_24 = local_24 + 1;" (assignment_expression "local_24 = local_24 + 1" identifier = (binary_expression "local_24 + 1" identifier + number_literal)) ;) (expression_statement "local_20 = local_20 + (uint)bVar10;" (assignment_expression "local_20 = local_20 + (uint)bVar10" identifier = (binary_expression "local_20 + (uint)bVar10" identifier + (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_28 < iVar4)" ( (binary_expression "local_28 < iVar4" identifier < identifier) )) ;) })) (expression_statement "SyncImage(iVar3,param_2);" (call_expression "SyncImage(iVar3,param_2)" identifier (argument_list "(iVar3,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = EOFBlob(iVar3);" (assignment_expression "iVar4 = EOFBlob(iVar3)" identifier = (call_expression "EOFBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" { (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar7);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar7)" identifier = (call_expression "GetExceptionMessage(*piVar7)" identifier (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);" (call_expression "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" identifier (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" ( identifier , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , number_literal , number_literal , (binary_expression "&UNK_000a3e47 + unaff_EDI" (pointer_expression "&UNK_000a3e47" & identifier) + identifier) , (binary_expression "unaff_EDI + 0x76c34" identifier + number_literal) , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) })) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar6 = GetFirstImageInList(iVar3);" (assignment_expression "uVar6 = GetFirstImageInList(iVar3)" identifier = (call_expression "GetFirstImageInList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0x7743f);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0x7743f)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0x7743f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x7743f)" ( (binary_expression "unaff_EDI + 0x7743f" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 400;" (assignment_expression "uVar11 = 400" identifier = number_literal) ;) (expression_statement "uVar6 = 0xa2;" (assignment_expression "uVar6 = 0xa2" identifier = number_literal) ;) }) (else_clause "else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" else (compound_statement "{\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" { (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0xdbd0b)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd0b)" ( (binary_expression "unaff_EDI + 0xdbd0b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x1c2;" (assignment_expression "uVar11 = 0x1c2" identifier = number_literal) ;) (expression_statement "uVar6 = 0xa0;" (assignment_expression "uVar6 = 0xa0" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" statement_identifier : (expression_statement "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" identifier (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" ( identifier , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "unaff_EDI + 0x79aa9" identifier + number_literal) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;)) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nImage * ReadOTBImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  Quantum QVar1;\n  ushort uVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int iVar6;\n  Quantum *pQVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  int unaff_EDI;\n  bool bVar11;\n  size_t sVar12;\n  ExceptionType severity;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  __x86_get_pc_thunk_di();\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(pIVar3);\n    return (Image *)0x0;\n  }\n  uVar5 = ReadBlobByte(pIVar3);\n  if ((uVar5 & 0x10) == 0) {\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->columns = sVar12;\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->rows = sVar12;\n  }\n  else {\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }\n  if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {\n    pcVar9 = (char *)(unaff_EDI + 0xa3e33);\n    severity = CorruptImageError;\n    sVar12 = 0x9d;\n  }\n  else {\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}\n\n" comment comment comment comment comment comment comment (function_definition "Image * ReadOTBImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  Quantum QVar1;\n  ushort uVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int iVar6;\n  Quantum *pQVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  int unaff_EDI;\n  bool bVar11;\n  size_t sVar12;\n  ExceptionType severity;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  __x86_get_pc_thunk_di();\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(pIVar3);\n    return (Image *)0x0;\n  }\n  uVar5 = ReadBlobByte(pIVar3);\n  if ((uVar5 & 0x10) == 0) {\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->columns = sVar12;\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->rows = sVar12;\n  }\n  else {\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }\n  if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {\n    pcVar9 = (char *)(unaff_EDI + 0xa3e33);\n    severity = CorruptImageError;\n    sVar12 = 0x9d;\n  }\n  else {\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}" type_identifier (pointer_declarator "* ReadOTBImage(ImageInfo *image_info,ExceptionInfo *exception)" * (function_declarator "ReadOTBImage(ImageInfo *image_info,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  Quantum QVar1;\n  ushort uVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int iVar6;\n  Quantum *pQVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  int unaff_EDI;\n  bool bVar11;\n  size_t sVar12;\n  ExceptionType severity;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  __x86_get_pc_thunk_di();\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(pIVar3);\n    return (Image *)0x0;\n  }\n  uVar5 = ReadBlobByte(pIVar3);\n  if ((uVar5 & 0x10) == 0) {\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->columns = sVar12;\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->rows = sVar12;\n  }\n  else {\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }\n  if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {\n    pcVar9 = (char *)(unaff_EDI + 0xa3e33);\n    severity = CorruptImageError;\n    sVar12 = 0x9d;\n  }\n  else {\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}" { (declaration "Quantum QVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "Image *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Quantum *pQVar7;" type_identifier (pointer_declarator "*pQVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "ExceptionType severity;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(image_info == (ImageInfo *)0x0)" ( (binary_expression "image_info == (ImageInfo *)0x0" identifier == (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b69)" ( (binary_expression "unaff_EDI + 0x76b69" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(image_info->signature != 0xabacadab)" ( (binary_expression "image_info->signature != 0xabacadab" (field_expression "image_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b91)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b91)" ( (binary_expression "unaff_EDI + 0x76b91" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);\n  }" if (parenthesized_expression "(image_info->debug != MagickFalse)" ( (binary_expression "image_info->debug != MagickFalse" (field_expression "image_info->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename);" (call_expression "LogMagickEvent(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename)" identifier (argument_list "(TraceEvent,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0x83,\n                   (char *)(unaff_EDI + 0x8eeb7),image_info->filename)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbd39)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd39)" ( (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x8eeb7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x8eeb7)" ( (binary_expression "unaff_EDI + 0x8eeb7" identifier + number_literal) ))) , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x77aa5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77aa5)" ( (binary_expression "unaff_EDI + 0x77aa5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x787d5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x787d5)" ( (binary_expression "unaff_EDI + 0x787d5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (expression_statement "pIVar3 = AcquireImage(image_info,exception);" (assignment_expression "pIVar3 = AcquireImage(image_info,exception)" identifier = (call_expression "AcquireImage(image_info,exception)" identifier (argument_list "(image_info,exception)" ( identifier , identifier )))) ;) (expression_statement "MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);" (assignment_expression "MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception)" identifier (argument_list "(image_info,pIVar3,ReadBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) {\n    DestroyImageList(pIVar3);\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n    DestroyImageList(pIVar3);\n    return (Image *)0x0;\n  }" { (expression_statement "DestroyImageList(pIVar3);" (call_expression "DestroyImageList(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier ))) ;) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar5 = ReadBlobByte(pIVar3);" (assignment_expression "uVar5 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (if_statement "if ((uVar5 & 0x10) == 0) {\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->columns = sVar12;\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->rows = sVar12;\n  }\n  else {\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }" if (parenthesized_expression "((uVar5 & 0x10) == 0)" ( (binary_expression "(uVar5 & 0x10) == 0" (parenthesized_expression "(uVar5 & 0x10)" ( (binary_expression "uVar5 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->columns = sVar12;\n    sVar12 = ReadBlobByte(pIVar3);\n    pIVar3->rows = sVar12;\n  }" { (expression_statement "sVar12 = ReadBlobByte(pIVar3);" (assignment_expression "sVar12 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (expression_statement "pIVar3->columns = sVar12;" (assignment_expression "pIVar3->columns = sVar12" (field_expression "pIVar3->columns" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar12 = ReadBlobByte(pIVar3);" (assignment_expression "sVar12 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (expression_statement "pIVar3->rows = sVar12;" (assignment_expression "pIVar3->rows = sVar12" (field_expression "pIVar3->rows" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }" else (compound_statement "{\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->columns = (uint)uVar2;\n    uVar2 = ReadBlobMSBShort(pIVar3);\n    pIVar3->rows = (uint)uVar2;\n  }" { (expression_statement "uVar2 = ReadBlobMSBShort(pIVar3);" (assignment_expression "uVar2 = ReadBlobMSBShort(pIVar3)" identifier = (call_expression "ReadBlobMSBShort(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (expression_statement "pIVar3->columns = (uint)uVar2;" (assignment_expression "pIVar3->columns = (uint)uVar2" (field_expression "pIVar3->columns" identifier -> field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = ReadBlobMSBShort(pIVar3);" (assignment_expression "uVar2 = ReadBlobMSBShort(pIVar3)" identifier = (call_expression "ReadBlobMSBShort(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (expression_statement "pIVar3->rows = (uint)uVar2;" (assignment_expression "pIVar3->rows = (uint)uVar2" (field_expression "pIVar3->rows" identifier -> field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (if_statement "if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {\n    pcVar9 = (char *)(unaff_EDI + 0xa3e33);\n    severity = CorruptImageError;\n    sVar12 = 0x9d;\n  }\n  else {\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }" if (parenthesized_expression "((pIVar3->columns == 0) || (pIVar3->rows == 0))" ( (binary_expression "(pIVar3->columns == 0) || (pIVar3->rows == 0)" (parenthesized_expression "(pIVar3->columns == 0)" ( (binary_expression "pIVar3->columns == 0" (field_expression "pIVar3->columns" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(pIVar3->rows == 0)" ( (binary_expression "pIVar3->rows == 0" (field_expression "pIVar3->rows" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n    pcVar9 = (char *)(unaff_EDI + 0xa3e33);\n    severity = CorruptImageError;\n    sVar12 = 0x9d;\n  }" { (expression_statement "pcVar9 = (char *)(unaff_EDI + 0xa3e33);" (assignment_expression "pcVar9 = (char *)(unaff_EDI + 0xa3e33)" identifier = (cast_expression "(char *)(unaff_EDI + 0xa3e33)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xa3e33)" ( (binary_expression "unaff_EDI + 0xa3e33" identifier + number_literal) )))) ;) (expression_statement "severity = CorruptImageError;" (assignment_expression "severity = CorruptImageError" identifier = identifier) ;) (expression_statement "sVar12 = 0x9d;" (assignment_expression "sVar12 = 0x9d" identifier = number_literal) ;) }) (else_clause "else {\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }" else (compound_statement "{\n    iVar6 = ReadBlobByte(pIVar3);\n    if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }\n  }" { (expression_statement "iVar6 = ReadBlobByte(pIVar3);" (assignment_expression "iVar6 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (if_statement "if ((char)iVar6 == '\x01') {\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }\n    else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }" if (parenthesized_expression "((char)iVar6 == '\x01')" ( (binary_expression "(char)iVar6 == '\x01'" (cast_expression "(char)iVar6" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }\n      pcVar9 = (char *)(unaff_EDI + 0x7743f);\n      severity = ErrorException;\n      sVar12 = 0xa2;\n    }" { (expression_statement "MVar4 = AcquireImageColormap(pIVar3,2,exception);" (assignment_expression "MVar4 = AcquireImageColormap(pIVar3,2,exception)" identifier = (call_expression "AcquireImageColormap(pIVar3,2,exception)" identifier (argument_list "(pIVar3,2,exception)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (MVar4 != MagickFalse) {\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }" if (parenthesized_expression "(MVar4 != MagickFalse)" ( (binary_expression "MVar4 != MagickFalse" identifier != identifier) )) (compound_statement "{\n        if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }\n        CloseBlob(pIVar3);\n        pIVar3 = GetFirstImageInList(pIVar3);\n        return pIVar3;\n      }" { (if_statement "if (image_info->ping == MagickFalse) {\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }" if (parenthesized_expression "(image_info->ping == MagickFalse)" ( (binary_expression "image_info->ping == MagickFalse" (field_expression "image_info->ping" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);\n          if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }\n          SyncImage(pIVar3,exception);\n          iVar6 = EOFBlob(pIVar3);\n          if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }\n        }" { (expression_statement "MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);" (assignment_expression "MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception)" identifier = (call_expression "SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception)" identifier (argument_list "(pIVar3,pIVar3->columns,pIVar3->rows,exception)" ( identifier , (field_expression "pIVar3->columns" identifier -> field_identifier) , (field_expression "pIVar3->rows" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) {\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n            pIVar3 = DestroyImageList(pIVar3);\n            return pIVar3;\n          }" { (expression_statement "pIVar3 = DestroyImageList(pIVar3);" (assignment_expression "pIVar3 = DestroyImageList(pIVar3)" identifier = (call_expression "DestroyImageList(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (return_statement "return pIVar3;" return identifier ;) })) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pIVar3->rows) {\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }" if (parenthesized_expression "(0 < (int)pIVar3->rows)" ( (binary_expression "0 < (int)pIVar3->rows" number_literal < (cast_expression "(int)pIVar3->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->rows" identifier -> field_identifier))) )) (compound_statement "{\n            do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);\n          }" { (do_statement "do {\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            } while (local_28 < (int)uVar5);" do (compound_statement "{\n              pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);\n              if (pQVar7 == (Quantum *)0x0) break;\n              if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }\n              MVar4 = SyncAuthenticPixels(pIVar3,exception);\n              if (MVar4 == MagickFalse) break;\n              uVar5 = pIVar3->rows;\n              if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }\n              local_28 = local_28 + 1;\n              bVar11 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar11;\n            }" { (expression_statement "pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception);" (assignment_expression "pQVar7 = QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception)" identifier = (call_expression "QueueAuthenticPixels(pIVar3,0,local_28,pIVar3->columns,1,exception)" identifier (argument_list "(pIVar3,0,local_28,pIVar3->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "pIVar3->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (pQVar7 == (Quantum *)0x0) break;" if (parenthesized_expression "(pQVar7 == (Quantum *)0x0)" ( (binary_expression "pQVar7 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (0 < (int)pIVar3->columns) {\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }" if (parenthesized_expression "(0 < (int)pIVar3->columns)" ( (binary_expression "0 < (int)pIVar3->columns" number_literal < (cast_expression "(int)pIVar3->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->columns" identifier -> field_identifier))) )) (compound_statement "{\n                uVar10 = 0;\n                iVar6 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                } while (iVar6 < (int)pIVar3->columns);" do (compound_statement "{\n                  if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }\n                  if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }\n                  uVar10 = uVar10 + 1;\n                  if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }\n                  iVar6 = iVar6 + 1;\n                  pQVar7 = pQVar7 + pIVar3->number_channels;\n                }" { (if_statement "if ((char)uVar10 == '\0') {\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" if (parenthesized_expression "((char)uVar10 == '\0')" ( (binary_expression "(char)uVar10 == '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar5 = ReadBlobByte(pIVar3);\n                    uVar10 = uVar10 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" { (expression_statement "uVar5 = ReadBlobByte(pIVar3);" (assignment_expression "uVar5 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (expression_statement "uVar10 = uVar10 & 0xff;" (assignment_expression "uVar10 = uVar10 & 0xff" identifier = (binary_expression "uVar10 & 0xff" identifier & number_literal)) ;) (if_statement "if (uVar5 == 0xffffffff) {\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                      pcVar9 = (char *)(unaff_EDI + 0x84110);\n                      severity = CorruptImageError;\n                      sVar12 = 0xbb;\n                      goto LAB_00228208;\n                    }" { (expression_statement "pcVar9 = (char *)(unaff_EDI + 0x84110);" (assignment_expression "pcVar9 = (char *)(unaff_EDI + 0x84110)" identifier = (cast_expression "(char *)(unaff_EDI + 0x84110)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x84110)" ( (binary_expression "unaff_EDI + 0x84110" identifier + number_literal) )))) ;) (expression_statement "severity = CorruptImageError;" (assignment_expression "severity = CorruptImageError" identifier = identifier) ;) (expression_statement "sVar12 = 0xbb;" (assignment_expression "sVar12 = 0xbb" identifier = number_literal) ;) (goto_statement "goto LAB_00228208;" goto statement_identifier ;) })) })) (if_statement "if ((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0) {\n                    QVar1 = 1.0;\n                  }\n                  else {\n                    QVar1 = 0.0;\n                  }" if (parenthesized_expression "((uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar5 >> (7 - uVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar5 >> (7 - uVar10 & 0x1f) & 1)" ( (binary_expression "uVar5 >> (7 - uVar10 & 0x1f) & 1" (binary_expression "uVar5 >> (7 - uVar10 & 0x1f)" identifier >> (parenthesized_expression "(7 - uVar10 & 0x1f)" ( (binary_expression "7 - uVar10 & 0x1f" (binary_expression "7 - uVar10" number_literal - identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    QVar1 = 1.0;\n                  }" { (expression_statement "QVar1 = 1.0;" (assignment_expression "QVar1 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                    QVar1 = 0.0;\n                  }" else (compound_statement "{\n                    QVar1 = 0.0;\n                  }" { (expression_statement "QVar1 = 0.0;" (assignment_expression "QVar1 = 0.0" identifier = number_literal) ;) }))) (if_statement "if (pIVar3->channel_map[5].traits != UndefinedPixelTrait) {\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }" if (parenthesized_expression "(pIVar3->channel_map[5].traits != UndefinedPixelTrait)" ( (binary_expression "pIVar3->channel_map[5].traits != UndefinedPixelTrait" (field_expression "pIVar3->channel_map[5].traits" (subscript_expression "pIVar3->channel_map[5]" (field_expression "pIVar3->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    pQVar7[pIVar3->channel_map[5].offset] = QVar1;\n                  }" { (expression_statement "pQVar7[pIVar3->channel_map[5].offset] = QVar1;" (assignment_expression "pQVar7[pIVar3->channel_map[5].offset] = QVar1" (subscript_expression "pQVar7[pIVar3->channel_map[5].offset]" identifier [ (field_expression "pIVar3->channel_map[5].offset" (subscript_expression "pIVar3->channel_map[5]" (field_expression "pIVar3->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) = identifier) ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if ((char)uVar10 == '\b') {\n                    uVar10 = 0;\n                  }" if (parenthesized_expression "((char)uVar10 == '\b')" ( (binary_expression "(char)uVar10 == '\b'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar10 = 0;\n                  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pQVar7 = pQVar7 + pIVar3->number_channels;" (assignment_expression "pQVar7 = pQVar7 + pIVar3->number_channels" identifier = (binary_expression "pQVar7 + pIVar3->number_channels" identifier + (field_expression "pIVar3->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(iVar6 < (int)pIVar3->columns)" ( (binary_expression "iVar6 < (int)pIVar3->columns" identifier < (cast_expression "(int)pIVar3->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "MVar4 = SyncAuthenticPixels(pIVar3,exception);" (assignment_expression "MVar4 = SyncAuthenticPixels(pIVar3,exception)" identifier = (call_expression "SyncAuthenticPixels(pIVar3,exception)" identifier (argument_list "(pIVar3,exception)" ( identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) break;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = pIVar3->rows;" (assignment_expression "uVar5 = pIVar3->rows" identifier = (field_expression "pIVar3->rows" identifier -> field_identifier)) ;) (if_statement "if (pIVar3->previous == (_Image *)0x0) {\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }" if (parenthesized_expression "(pIVar3->previous == (_Image *)0x0)" ( (binary_expression "pIVar3->previous == (_Image *)0x0" (field_expression "pIVar3->previous" identifier -> field_identifier) == (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);\n                if (MVar4 == MagickFalse) break;\n                uVar5 = pIVar3->rows;\n              }" { (expression_statement "MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5);" (assignment_expression "MVar4 = SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5)" identifier = (call_expression "SetImageProgress(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5)" identifier (argument_list "(pIVar3,(char *)(unaff_EDI + 0x82c74),\n                                         CONCAT44(local_20,local_24),(ulonglong)uVar5)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x82c74)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x82c74)" ( (binary_expression "unaff_EDI + 0x82c74" identifier + number_literal) ))) , (call_expression "CONCAT44(local_20,local_24)" identifier (argument_list "(local_20,local_24)" ( identifier , identifier ))) , (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) )))) ;) (if_statement "if (MVar4 == MagickFalse) break;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = pIVar3->rows;" (assignment_expression "uVar5 = pIVar3->rows" identifier = (field_expression "pIVar3->rows" identifier -> field_identifier)) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "bVar11 = 0xfffffffe < local_24;" (assignment_expression "bVar11 = 0xfffffffe < local_24" identifier = (binary_expression "0xfffffffe < local_24" number_literal < identifier)) ;) (expression_statement "local_24 = local_24 + 1;" (assignment_expression "local_24 = local_24 + 1" identifier = (binary_expression "local_24 + 1" identifier + number_literal)) ;) (expression_statement "local_20 = local_20 + (uint)bVar11;" (assignment_expression "local_20 = local_20 + (uint)bVar11" identifier = (binary_expression "local_20 + (uint)bVar11" identifier + (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_28 < (int)uVar5)" ( (binary_expression "local_28 < (int)uVar5" identifier < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "SyncImage(pIVar3,exception);" (call_expression "SyncImage(pIVar3,exception)" identifier (argument_list "(pIVar3,exception)" ( identifier , identifier ))) ;) (expression_statement "iVar6 = EOFBlob(pIVar3);" (assignment_expression "iVar6 = EOFBlob(pIVar3)" identifier = (call_expression "EOFBlob(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar8 = __errno_location();\n            pcVar9 = GetExceptionMessage(*piVar8);\n            ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);\n            DestroyString(pcVar9);\n          }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar9 = GetExceptionMessage(*piVar8);" (assignment_expression "pcVar9 = GetExceptionMessage(*piVar8)" identifier = (call_expression "GetExceptionMessage(*piVar8)" identifier (argument_list "(*piVar8)" ( (pointer_expression "*piVar8" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9);" (call_expression "ThrowMagickException\n                      (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9)" identifier (argument_list "(exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),0xd0,\n                       CorruptImageError,(char *)(unaff_EDI + 0xa3e47),(char *)(unaff_EDI + 0x76c34)\n                       ,pIVar3->filename,pcVar9)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbd39)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd39)" ( (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) ))) , number_literal , identifier , (cast_expression "(char *)(unaff_EDI + 0xa3e47)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xa3e47)" ( (binary_expression "unaff_EDI + 0xa3e47" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0x76c34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76c34)" ( (binary_expression "unaff_EDI + 0x76c34" identifier + number_literal) ))) , (field_expression "pIVar3->filename" identifier -> field_identifier) , identifier ))) ;) (expression_statement "DestroyString(pcVar9);" (call_expression "DestroyString(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) })) })) (expression_statement "CloseBlob(pIVar3);" (call_expression "CloseBlob(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier ))) ;) (expression_statement "pIVar3 = GetFirstImageInList(pIVar3);" (assignment_expression "pIVar3 = GetFirstImageInList(pIVar3)" identifier = (call_expression "GetFirstImageInList(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (return_statement "return pIVar3;" return identifier ;) })) (expression_statement "pcVar9 = (char *)(unaff_EDI + 0x7743f);" (assignment_expression "pcVar9 = (char *)(unaff_EDI + 0x7743f)" identifier = (cast_expression "(char *)(unaff_EDI + 0x7743f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x7743f)" ( (binary_expression "unaff_EDI + 0x7743f" identifier + number_literal) )))) ;) (expression_statement "severity = ErrorException;" (assignment_expression "severity = ErrorException" identifier = identifier) ;) (expression_statement "sVar12 = 0xa2;" (assignment_expression "sVar12 = 0xa2" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }" else (compound_statement "{\n      pcVar9 = (char *)(unaff_EDI + 0xdbd0b);\n      severity = CoderError;\n      sVar12 = 0xa0;\n    }" { (expression_statement "pcVar9 = (char *)(unaff_EDI + 0xdbd0b);" (assignment_expression "pcVar9 = (char *)(unaff_EDI + 0xdbd0b)" identifier = (cast_expression "(char *)(unaff_EDI + 0xdbd0b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd0b)" ( (binary_expression "unaff_EDI + 0xdbd0b" identifier + number_literal) )))) ;) (expression_statement "severity = CoderError;" (assignment_expression "severity = CoderError" identifier = identifier) ;) (expression_statement "sVar12 = 0xa0;" (assignment_expression "sVar12 = 0xa0" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00228208:\n  ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);" statement_identifier : (expression_statement "ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename);" (call_expression "ThrowMagickException\n            (exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename)" identifier (argument_list "(exception,(char *)(unaff_EDI + 0xdbcfe),(char *)(unaff_EDI + 0xdbd39),sVar12,severity,\n             pcVar9,(char *)(unaff_EDI + 0x79aa9),image_info->filename)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbd39)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd39)" ( (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) ))) , identifier , identifier , identifier , (cast_expression "(char *)(unaff_EDI + 0x79aa9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x79aa9)" ( (binary_expression "unaff_EDI + 0x79aa9" identifier + number_literal) ))) , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;)) (expression_statement "CloseBlob(pIVar3);" (call_expression "CloseBlob(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier ))) ;) (expression_statement "DestroyImageList(pIVar3);" (call_expression "DestroyImageList(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier ))) ;) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "undefined4 FUN_00227f90(int param_1,int param_2)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00227f90(int param_1,int param_2)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" type_identifier (function_declarator "FUN_00227f90(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004c803();" (call_expression "FUN_0004c803()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b69)" ( (binary_expression "unaff_EDI + 0x76b69" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x76b91)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76b91)" ( (binary_expression "unaff_EDI + 0x76b91" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" ( (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" * (cast_expression "(int *)(param_1 + 0x31f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f0)" ( (binary_expression "param_1 + 0x31f0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" identifier (argument_list "(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" ( number_literal , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x8eeb7" identifier + number_literal) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x77aa5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77aa5)" ( (binary_expression "unaff_EDI + 0x77aa5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" identifier (argument_list "((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" ( (cast_expression "(char *)(unaff_EDI + 0x787d5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x787d5)" ( (binary_expression "unaff_EDI + 0x787d5" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbcfe)" ( (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xdbd49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd49)" ( (binary_expression "unaff_EDI + 0xdbd49" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar3 = AcquireImage(param_1,param_2);" (assignment_expression "iVar3 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = OpenBlob(param_1,iVar3,2,param_2);" (assignment_expression "iVar4 = OpenBlob(param_1,iVar3,2,param_2)" identifier = (call_expression "OpenBlob(param_1,iVar3,2,param_2)" identifier (argument_list "(param_1,iVar3,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(iVar3);\n    return 0;\n  }" { (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" if (parenthesized_expression "((uVar5 & 0x10) == 0)" ( (binary_expression "(uVar5 & 0x10) == 0" (parenthesized_expression "(uVar5 & 0x10)" ( (binary_expression "uVar5 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }" { (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" else (compound_statement "{\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" { (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" identifier = (call_expression "ReadBlobMSBShort(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffff" identifier & number_literal)) ;) (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" identifier = (call_expression "ReadBlobMSBShort(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffff" identifier & number_literal)) ;) }))) (if_statement "if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" if (parenthesized_expression "((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x18) == 0" (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }" { (expression_statement "puVar12 = &UNK_000a3e33 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_000a3e33 + unaff_EDI" identifier = (binary_expression "&UNK_000a3e33 + unaff_EDI" (pointer_expression "&UNK_000a3e33" & identifier) + identifier)) ;) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" identifier = number_literal) ;) (expression_statement "uVar6 = 0x9d;" (assignment_expression "uVar6 = 0x9d" identifier = number_literal) ;) }) (else_clause "else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" else (compound_statement "{\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" { (expression_statement "cVar2 = ReadBlobByte(iVar3);" (assignment_expression "cVar2 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }" { (expression_statement "iVar4 = AcquireImageColormap(iVar3,2,param_2);" (assignment_expression "iVar4 = AcquireImageColormap(iVar3,2,param_2)" identifier = (call_expression "AcquireImageColormap(iVar3,2,param_2)" identifier (argument_list "(iVar3,2,param_2)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" { (if_statement "if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) == 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" { (expression_statement "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);" (assignment_expression "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" identifier = (call_expression "SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" identifier (argument_list "(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" { (expression_statement "uVar6 = DestroyImageList(iVar3);" (assignment_expression "uVar6 = DestroyImageList(iVar3)" identifier = (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar3 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" { (do_statement "do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);" do (compound_statement "{\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            }" { (expression_statement "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;" (assignment_expression "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier = (call_expression "QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier (argument_list "(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" ( (binary_expression "0 < *(int *)(iVar3 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                }" { (if_statement "if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" if (parenthesized_expression "((char)uVar8 == '\0')" ( (binary_expression "(char)uVar8 == '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" { (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) (if_statement "if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" { (expression_statement "puVar12 = &UNK_00084110 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_00084110 + unaff_EDI" identifier = (binary_expression "&UNK_00084110 + unaff_EDI" (pointer_expression "&UNK_00084110" & identifier) + identifier)) ;) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" identifier = number_literal) ;) (expression_statement "uVar6 = 0xbb;" (assignment_expression "uVar6 = 0xbb" identifier = number_literal) ;) (goto_statement "goto LAB_00228208;" goto statement_identifier ;) })) })) (if_statement "if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }" if (parenthesized_expression "((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1)" ( (binary_expression "uVar5 >> (7 - uVar8 & 0x1f) & 1" (binary_expression "uVar5 >> (7 - uVar8 & 0x1f)" identifier >> (parenthesized_expression "(7 - uVar8 & 0x1f)" ( (binary_expression "7 - uVar8 & 0x1f" (binary_expression "7 - uVar8" number_literal - identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    uVar1 = 0x3ff0000000000000;\n                  }" { (expression_statement "uVar1 = 0x3ff0000000000000;" (assignment_expression "uVar1 = 0x3ff0000000000000" identifier = number_literal) ;) }) (else_clause "else {\n                    uVar1 = 0;\n                  }" else (compound_statement "{\n                    uVar1 = 0;\n                  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) }))) (if_statement "if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x40)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x40" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" { (expression_statement "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;" (assignment_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1" (pointer_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" ( (binary_expression "iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x44)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x44" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "((char)uVar8 == '\b')" ( (binary_expression "(char)uVar8 == '\b'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8" identifier = (binary_expression "iVar4 + *(int *)(iVar3 + 0x298) * 8" identifier + (binary_expression "*(int *)(iVar3 + 0x298) * 8" (pointer_expression "*(int *)(iVar3 + 0x298)" * (cast_expression "(int *)(iVar3 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar3 + 0x18))" ( (binary_expression "iVar9 < *(int *)(iVar3 + 0x18)" identifier < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar4 = SyncAuthenticPixels(iVar3,param_2);" (assignment_expression "iVar4 = SyncAuthenticPixels(iVar3,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar3,param_2)" identifier (argument_list "(iVar3,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x333c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x333c) == 0" (pointer_expression "*(int *)(iVar3 + 0x333c)" * (cast_expression "(int *)(iVar3 + 0x333c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x333c)" ( (binary_expression "iVar3 + 0x333c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" { (expression_statement "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);" (assignment_expression "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" identifier = (call_expression "SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" identifier (argument_list "(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" ( identifier , (binary_expression "&UNK_00082c74 + unaff_EDI" (pointer_expression "&UNK_00082c74" & identifier) + identifier) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = 0xfffffffe < local_24;" (assignment_expression "bVar10 = 0xfffffffe < local_24" identifier = (binary_expression "0xfffffffe < local_24" number_literal < identifier)) ;) (expression_statement "local_24 = local_24 + 1;" (assignment_expression "local_24 = local_24 + 1" identifier = (binary_expression "local_24 + 1" identifier + number_literal)) ;) (expression_statement "local_20 = local_20 + (uint)bVar10;" (assignment_expression "local_20 = local_20 + (uint)bVar10" identifier = (binary_expression "local_20 + (uint)bVar10" identifier + (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_28 < iVar4)" ( (binary_expression "local_28 < iVar4" identifier < identifier) )) ;) })) (expression_statement "SyncImage(iVar3,param_2);" (call_expression "SyncImage(iVar3,param_2)" identifier (argument_list "(iVar3,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = EOFBlob(iVar3);" (assignment_expression "iVar4 = EOFBlob(iVar3)" identifier = (call_expression "EOFBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" { (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar7);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar7)" identifier = (call_expression "GetExceptionMessage(*piVar7)" identifier (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);" (call_expression "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" identifier (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" ( identifier , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , number_literal , number_literal , (binary_expression "&UNK_000a3e47 + unaff_EDI" (pointer_expression "&UNK_000a3e47" & identifier) + identifier) , (binary_expression "unaff_EDI + 0x76c34" identifier + number_literal) , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) })) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar6 = GetFirstImageInList(iVar3);" (assignment_expression "uVar6 = GetFirstImageInList(iVar3)" identifier = (call_expression "GetFirstImageInList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0x7743f);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0x7743f)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0x7743f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x7743f)" ( (binary_expression "unaff_EDI + 0x7743f" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 400;" (assignment_expression "uVar11 = 400" identifier = number_literal) ;) (expression_statement "uVar6 = 0xa2;" (assignment_expression "uVar6 = 0xa2" identifier = number_literal) ;) }) (else_clause "else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" else (compound_statement "{\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" { (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0xdbd0b)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdbd0b)" ( (binary_expression "unaff_EDI + 0xdbd0b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x1c2;" (assignment_expression "uVar11 = 0x1c2" identifier = number_literal) ;) (expression_statement "uVar6 = 0xa0;" (assignment_expression "uVar6 = 0xa0" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" statement_identifier : (expression_statement "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" identifier (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" ( identifier , (binary_expression "unaff_EDI + 0xdbcfe" identifier + number_literal) , (binary_expression "unaff_EDI + 0xdbd39" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "unaff_EDI + 0x79aa9" identifier + number_literal) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;)) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00227f90(int param_1,int param_2)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00227f90(int param_1,int param_2)" (identifier "FUN_00227f90") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int unaff_EDI;\n  bool bVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  int local_28;\n  uint local_24;\n  int local_20;\n  \n  FUN_0004c803();\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n  if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }\n  uVar5 = ReadBlobByte(iVar3);\n  if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }\n  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }\nLAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "FUN_0004c803();" (call_expression "FUN_0004c803()" (identifier "FUN_0004c803") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,\n                  (char *)(unaff_EDI + 0xdbd49))" (( "(") (cast_expression "(char *)(unaff_EDI + 0x76b69)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x76b69)" (( "(") (binary_expression "unaff_EDI + 0x76b69" (identifier "unaff_EDI") (+ "+") (number_literal "0x76b69")) () ")"))) (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbcfe)" (( "(") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) () ")"))) (, ",") (number_literal "0x80") (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbd49)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbd49)" (( "(") (binary_expression "unaff_EDI + 0xdbd49" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd49")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" (* "*") (cast_expression "(int *)(param_1 + 0x31f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31f4)" (( "(") (binary_expression "param_1 + 0x31f4" (identifier "param_1") (+ "+") (number_literal "0x31f4")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,\n                  (char *)(unaff_EDI + 0xdbd49))" (( "(") (cast_expression "(char *)(unaff_EDI + 0x76b91)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x76b91)" (( "(") (binary_expression "unaff_EDI + 0x76b91" (identifier "unaff_EDI") (+ "+") (number_literal "0x76b91")) () ")"))) (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbcfe)" (( "(") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) () ")"))) (, ",") (number_literal "0x81") (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbd49)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbd49)" (( "(") (binary_expression "unaff_EDI + 0xdbd49" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd49")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" (* "*") (cast_expression "(int *)(param_1 + 0x31f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31f0)" (( "(") (binary_expression "param_1 + 0x31f0" (identifier "param_1") (+ "+") (number_literal "0x31f0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" (identifier "LogMagickEvent") (argument_list "(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,\n                   param_1 + 0x21f0)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) (, ",") (binary_expression "unaff_EDI + 0xdbd39" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd39")) (, ",") (number_literal "0x83") (, ",") (binary_expression "unaff_EDI + 0x8eeb7" (identifier "unaff_EDI") (+ "+") (number_literal "0x8eeb7")) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,\n                  (char *)(unaff_EDI + 0xdbd49))" (( "(") (cast_expression "(char *)(unaff_EDI + 0x77aa5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x77aa5)" (( "(") (binary_expression "unaff_EDI + 0x77aa5" (identifier "unaff_EDI") (+ "+") (number_literal "0x77aa5")) () ")"))) (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbcfe)" (( "(") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) () ")"))) (, ",") (number_literal "0x85") (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbd49)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbd49)" (( "(") (binary_expression "unaff_EDI + 0xdbd49" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd49")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49));" (call_expression "__assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,\n                  (char *)(unaff_EDI + 0xdbd49))" (( "(") (cast_expression "(char *)(unaff_EDI + 0x787d5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x787d5)" (( "(") (binary_expression "unaff_EDI + 0x787d5" (identifier "unaff_EDI") (+ "+") (number_literal "0x787d5")) () ")"))) (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbcfe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbcfe)" (( "(") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) () ")"))) (, ",") (number_literal "0x86") (, ",") (cast_expression "(char *)(unaff_EDI + 0xdbd49)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbd49)" (( "(") (binary_expression "unaff_EDI + 0xdbd49" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd49")) () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = AcquireImage(param_1,param_2);" (assignment_expression "iVar3 = AcquireImage(param_1,param_2)" (identifier "iVar3") (= "=") (call_expression "AcquireImage(param_1,param_2)" (identifier "AcquireImage") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar4 = OpenBlob(param_1,iVar3,2,param_2);" (assignment_expression "iVar4 = OpenBlob(param_1,iVar3,2,param_2)" (identifier "iVar4") (= "=") (call_expression "OpenBlob(param_1,iVar3,2,param_2)" (identifier "OpenBlob") (argument_list "(param_1,iVar3,2,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "iVar3") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    DestroyImageList(iVar3);\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DestroyImageList(iVar3);\n    return 0;\n  }" ({ "{") (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" (identifier "DestroyImageList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar3)" (identifier "ReadBlobByte") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if ((uVar5 & 0x10) == 0) {\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }\n  else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" (if "if") (parenthesized_expression "((uVar5 & 0x10) == 0)" (( "(") (binary_expression "(uVar5 & 0x10) == 0" (parenthesized_expression "(uVar5 & 0x10)" (( "(") (binary_expression "uVar5 & 0x10" (identifier "uVar5") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x18) = uVar6;\n    uVar6 = ReadBlobByte(iVar3);\n    *(undefined4 *)(iVar3 + 0x1c) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" (identifier "uVar6") (= "=") (call_expression "ReadBlobByte(iVar3)" (identifier "ReadBlobByte") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = ReadBlobByte(iVar3);" (assignment_expression "uVar6 = ReadBlobByte(iVar3)" (identifier "uVar6") (= "=") (call_expression "ReadBlobByte(iVar3)" (identifier "ReadBlobByte") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}")) (else_clause "else {\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" (else "else") (compound_statement "{\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;\n    uVar5 = ReadBlobMSBShort(iVar3);\n    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;\n  }" ({ "{") (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" (identifier "uVar5") (= "=") (call_expression "ReadBlobMSBShort(iVar3)" (identifier "ReadBlobMSBShort") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x18) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x18)" (* "*") (cast_expression "(uint *)(iVar3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "uVar5 & 0xffff" (identifier "uVar5") (& "&") (number_literal "0xffff"))) (; ";")) (expression_statement "uVar5 = ReadBlobMSBShort(iVar3);" (assignment_expression "uVar5 = ReadBlobMSBShort(iVar3)" (identifier "uVar5") (= "=") (call_expression "ReadBlobMSBShort(iVar3)" (identifier "ReadBlobMSBShort") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "uVar5 & 0xffff" (identifier "uVar5") (& "&") (number_literal "0xffff"))) (; ";")) (} "}")))) (if_statement "if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }\n  else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x18) == 0" (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    puVar12 = &UNK_000a3e33 + unaff_EDI;\n    uVar11 = 0x1a9;\n    uVar6 = 0x9d;\n  }" ({ "{") (expression_statement "puVar12 = &UNK_000a3e33 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_000a3e33 + unaff_EDI" (identifier "puVar12") (= "=") (binary_expression "&UNK_000a3e33 + unaff_EDI" (pointer_expression "&UNK_000a3e33" (& "&") (identifier "UNK_000a3e33")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" (identifier "uVar11") (= "=") (number_literal "0x1a9")) (; ";")) (expression_statement "uVar6 = 0x9d;" (assignment_expression "uVar6 = 0x9d" (identifier "uVar6") (= "=") (number_literal "0x9d")) (; ";")) (} "}")) (else_clause "else {\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" (else "else") (compound_statement "{\n    cVar2 = ReadBlobByte(iVar3);\n    if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }\n  }" ({ "{") (expression_statement "cVar2 = ReadBlobByte(iVar3);" (assignment_expression "cVar2 = ReadBlobByte(iVar3)" (identifier "cVar2") (= "=") (call_expression "ReadBlobByte(iVar3)" (identifier "ReadBlobByte") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (cVar2 == '\x01') {\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }\n    else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }\n      puVar12 = (undefined *)(unaff_EDI + 0x7743f);\n      uVar11 = 400;\n      uVar6 = 0xa2;\n    }" ({ "{") (expression_statement "iVar4 = AcquireImageColormap(iVar3,2,param_2);" (assignment_expression "iVar4 = AcquireImageColormap(iVar3,2,param_2)" (identifier "iVar4") (= "=") (call_expression "AcquireImageColormap(iVar3,2,param_2)" (identifier "AcquireImageColormap") (argument_list "(iVar3,2,param_2)" (( "(") (identifier "iVar3") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }\n        CloseBlob(iVar3);\n        uVar6 = GetFirstImageInList(iVar3);\n        return uVar6;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x1bc) == 0) {\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1bc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1bc) == 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" (* "*") (cast_expression "(int *)(param_1 + 0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1bc)" (( "(") (binary_expression "param_1 + 0x1bc" (identifier "param_1") (+ "+") (number_literal "0x1bc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);\n          if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = 0;\n          if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }\n          SyncImage(iVar3,param_2);\n          iVar4 = EOFBlob(iVar3);\n          if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }\n        }" ({ "{") (expression_statement "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2);" (assignment_expression "iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" (identifier "iVar4") (= "=") (call_expression "SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" (identifier "SetImageExtent") (argument_list "(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),\n                                 param_2)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = DestroyImageList(iVar3);\n            return uVar6;\n          }" ({ "{") (expression_statement "uVar6 = DestroyImageList(iVar3);" (assignment_expression "uVar6 = DestroyImageList(iVar3)" (identifier "uVar6") (= "=") (call_expression "DestroyImageList(iVar3)" (identifier "DestroyImageList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar3 + 0x1c))" (( "(") (binary_expression "0 < *(int *)(iVar3 + 0x1c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n            do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);\n          }" ({ "{") (do_statement "do {\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            } while (local_28 < iVar4);" (do "do") (compound_statement "{\n              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;\n              if (iVar4 == 0) break;\n              if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }\n              iVar4 = SyncAuthenticPixels(iVar3,param_2);\n              if (iVar4 == 0) break;\n              iVar4 = *(int *)(iVar3 + 0x1c);\n              if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }\n              local_28 = local_28 + 1;\n              bVar10 = 0xfffffffe < local_24;\n              local_24 = local_24 + 1;\n              local_20 = local_20 + (uint)bVar10;\n            }" ({ "{") (expression_statement "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)\n              ;" (assignment_expression "iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (identifier "iVar4") (= "=") (call_expression "QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (identifier "QueueAuthenticPixels") (argument_list "(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (identifier "local_28") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar3 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                uVar8 = 0;\n                iVar9 = 0;\n                uVar5 = 0;\n                do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));\n              }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                } while (iVar9 < *(int *)(iVar3 + 0x18));" (do "do") (compound_statement "{\n                  if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }\n                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }\n                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }\n                  uVar8 = uVar8 + 1;\n                  if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }\n                  iVar9 = iVar9 + 1;\n                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;\n                }" ({ "{") (if_statement "if ((char)uVar8 == '\0') {\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" (if "if") (parenthesized_expression "((char)uVar8 == '\0')" (( "(") (binary_expression "(char)uVar8 == '\0'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    uVar5 = ReadBlobByte(iVar3);\n                    uVar8 = uVar8 & 0xff;\n                    if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }\n                  }" ({ "{") (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar3)" (identifier "ReadBlobByte") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar5 == 0xffffffff) {\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" (if "if") (parenthesized_expression "(uVar5 == 0xffffffff)" (( "(") (binary_expression "uVar5 == 0xffffffff" (identifier "uVar5") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                      puVar12 = &UNK_00084110 + unaff_EDI;\n                      uVar11 = 0x1a9;\n                      uVar6 = 0xbb;\n                      goto LAB_00228208;\n                    }" ({ "{") (expression_statement "puVar12 = &UNK_00084110 + unaff_EDI;" (assignment_expression "puVar12 = &UNK_00084110 + unaff_EDI" (identifier "puVar12") (= "=") (binary_expression "&UNK_00084110 + unaff_EDI" (pointer_expression "&UNK_00084110" (& "&") (identifier "UNK_00084110")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (expression_statement "uVar11 = 0x1a9;" (assignment_expression "uVar11 = 0x1a9" (identifier "uVar11") (= "=") (number_literal "0x1a9")) (; ";")) (expression_statement "uVar6 = 0xbb;" (assignment_expression "uVar6 = 0xbb" (identifier "uVar6") (= "=") (number_literal "0xbb")) (; ";")) (goto_statement "goto LAB_00228208;" (goto "goto") (statement_identifier "LAB_00228208") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {\n                    uVar1 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar1 = 0;\n                  }" (if "if") (parenthesized_expression "((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar5 >> (7 - uVar8 & 0x1f) & 1)" (( "(") (binary_expression "uVar5 >> (7 - uVar8 & 0x1f) & 1" (binary_expression "uVar5 >> (7 - uVar8 & 0x1f)" (identifier "uVar5") (>> ">>") (parenthesized_expression "(7 - uVar8 & 0x1f)" (( "(") (binary_expression "7 - uVar8 & 0x1f" (binary_expression "7 - uVar8" (number_literal "7") (- "-") (identifier "uVar8")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar1 = 0x3ff0000000000000;\n                  }" ({ "{") (expression_statement "uVar1 = 0x3ff0000000000000;" (assignment_expression "uVar1 = 0x3ff0000000000000" (identifier "uVar1") (= "=") (number_literal "0x3ff0000000000000")) (; ";")) (} "}")) (else_clause "else {\n                    uVar1 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar1 = 0;\n                  }" ({ "{") (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x40)" (( "(") (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x40" (pointer_expression "*(int *)(iVar3 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar3 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2a8)" (( "(") (binary_expression "iVar3 + 0x2a8" (identifier "iVar3") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;\n                  }" ({ "{") (expression_statement "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;" (assignment_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1" (pointer_expression "*(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8)" (( "(") (binary_expression "iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" (identifier "iVar4") (+ "+") (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + 0x44)" (( "(") (binary_expression "*(int *)(iVar3 + 0x2a8) + 0x44" (pointer_expression "*(int *)(iVar3 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar3 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2a8)" (( "(") (binary_expression "iVar3 + 0x2a8" (identifier "iVar3") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((char)uVar8 == '\b') {\n                    uVar8 = 0;\n                  }" (if "if") (parenthesized_expression "((char)uVar8 == '\b')" (( "(") (binary_expression "(char)uVar8 == '\b'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (== "==") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) () ")")) (compound_statement "{\n                    uVar8 = 0;\n                  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8" (identifier "iVar4") (= "=") (binary_expression "iVar4 + *(int *)(iVar3 + 0x298) * 8" (identifier "iVar4") (+ "+") (binary_expression "*(int *)(iVar3 + 0x298) * 8" (pointer_expression "*(int *)(iVar3 + 0x298)" (* "*") (cast_expression "(int *)(iVar3 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x298)" (( "(") (binary_expression "iVar3 + 0x298" (identifier "iVar3") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < *(int *)(iVar3 + 0x18))" (( "(") (binary_expression "iVar9 < *(int *)(iVar3 + 0x18)" (identifier "iVar9") (< "<") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = SyncAuthenticPixels(iVar3,param_2);" (assignment_expression "iVar4 = SyncAuthenticPixels(iVar3,param_2)" (identifier "iVar4") (= "=") (call_expression "SyncAuthenticPixels(iVar3,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(iVar3,param_2)" (( "(") (identifier "iVar3") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x333c) == 0) {\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x333c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x333c) == 0" (pointer_expression "*(int *)(iVar3 + 0x333c)" (* "*") (cast_expression "(int *)(iVar3 + 0x333c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x333c)" (( "(") (binary_expression "iVar3 + 0x333c" (identifier "iVar3") (+ "+") (number_literal "0x333c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);\n                if (iVar4 == 0) break;\n                iVar4 = *(int *)(iVar3 + 0x1c);\n              }" ({ "{") (expression_statement "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);" (assignment_expression "iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" (identifier "iVar4") (= "=") (call_expression "SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" (identifier "SetImageProgress") (argument_list "(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0)" (( "(") (identifier "iVar3") (, ",") (binary_expression "&UNK_00082c74 + unaff_EDI" (pointer_expression "&UNK_00082c74" (& "&") (identifier "UNK_00082c74")) (+ "+") (identifier "unaff_EDI")) (, ",") (identifier "local_24") (, ",") (identifier "local_20") (, ",") (identifier "iVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar10 = 0xfffffffe < local_24;" (assignment_expression "bVar10 = 0xfffffffe < local_24" (identifier "bVar10") (= "=") (binary_expression "0xfffffffe < local_24" (number_literal "0xfffffffe") (< "<") (identifier "local_24"))) (; ";")) (expression_statement "local_24 = local_24 + 1;" (assignment_expression "local_24 = local_24 + 1" (identifier "local_24") (= "=") (binary_expression "local_24 + 1" (identifier "local_24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_20 = local_20 + (uint)bVar10;" (assignment_expression "local_20 = local_20 + (uint)bVar10" (identifier "local_20") (= "=") (binary_expression "local_20 + (uint)bVar10" (identifier "local_20") (+ "+") (cast_expression "(uint)bVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_28 < iVar4)" (( "(") (binary_expression "local_28 < iVar4" (identifier "local_28") (< "<") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "SyncImage(iVar3,param_2);" (call_expression "SyncImage(iVar3,param_2)" (identifier "SyncImage") (argument_list "(iVar3,param_2)" (( "(") (identifier "iVar3") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar4 = EOFBlob(iVar3);" (assignment_expression "iVar4 = EOFBlob(iVar3)" (identifier "iVar4") (= "=") (call_expression "EOFBlob(iVar3)" (identifier "EOFBlob") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar7 = __errno_location();\n            uVar6 = GetExceptionMessage(*piVar7);\n            ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);\n            DestroyString(uVar6);\n          }" ({ "{") (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" (identifier "piVar7") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = GetExceptionMessage(*piVar7);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar7)" (identifier "uVar6") (= "=") (call_expression "GetExceptionMessage(*piVar7)" (identifier "GetExceptionMessage") (argument_list "(*piVar7)" (( "(") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) () ")")))) (; ";")) (expression_statement "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);" (call_expression "ThrowMagickException\n                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" (identifier "ThrowMagickException") (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,\n                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6)" (( "(") (identifier "param_2") (, ",") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) (, ",") (binary_expression "unaff_EDI + 0xdbd39" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd39")) (, ",") (number_literal "0xd0") (, ",") (number_literal "0x1a9") (, ",") (binary_expression "&UNK_000a3e47 + unaff_EDI" (pointer_expression "&UNK_000a3e47" (& "&") (identifier "UNK_000a3e47")) (+ "+") (identifier "unaff_EDI")) (, ",") (binary_expression "unaff_EDI + 0x76c34" (identifier "unaff_EDI") (+ "+") (number_literal "0x76c34")) (, ",") (binary_expression "iVar3 + 0x318" (identifier "iVar3") (+ "+") (number_literal "0x318")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" (identifier "DestroyString") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" (identifier "CloseBlob") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "uVar6 = GetFirstImageInList(iVar3);" (assignment_expression "uVar6 = GetFirstImageInList(iVar3)" (identifier "uVar6") (= "=") (call_expression "GetFirstImageInList(iVar3)" (identifier "GetFirstImageInList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0x7743f);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0x7743f)" (identifier "puVar12") (= "=") (cast_expression "(undefined *)(unaff_EDI + 0x7743f)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x7743f)" (( "(") (binary_expression "unaff_EDI + 0x7743f" (identifier "unaff_EDI") (+ "+") (number_literal "0x7743f")) () ")")))) (; ";")) (expression_statement "uVar11 = 400;" (assignment_expression "uVar11 = 400" (identifier "uVar11") (= "=") (number_literal "400")) (; ";")) (expression_statement "uVar6 = 0xa2;" (assignment_expression "uVar6 = 0xa2" (identifier "uVar6") (= "=") (number_literal "0xa2")) (; ";")) (} "}")) (else_clause "else {\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" (else "else") (compound_statement "{\n      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);\n      uVar11 = 0x1c2;\n      uVar6 = 0xa0;\n    }" ({ "{") (expression_statement "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);" (assignment_expression "puVar12 = (undefined *)(unaff_EDI + 0xdbd0b)" (identifier "puVar12") (= "=") (cast_expression "(undefined *)(unaff_EDI + 0xdbd0b)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdbd0b)" (( "(") (binary_expression "unaff_EDI + 0xdbd0b" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd0b")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x1c2;" (assignment_expression "uVar11 = 0x1c2" (identifier "uVar11") (= "=") (number_literal "0x1c2")) (; ";")) (expression_statement "uVar6 = 0xa0;" (assignment_expression "uVar6 = 0xa0" (identifier "uVar6") (= "=") (number_literal "0xa0")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00228208:\n  ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" (statement_identifier "LAB_00228208") (: ":") (expression_statement "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" (identifier "ThrowMagickException") (argument_list "(param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,\n             unaff_EDI + 0x79aa9,param_1 + 0x21f0)" (( "(") (identifier "param_2") (, ",") (binary_expression "unaff_EDI + 0xdbcfe" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbcfe")) (, ",") (binary_expression "unaff_EDI + 0xdbd39" (identifier "unaff_EDI") (+ "+") (number_literal "0xdbd39")) (, ",") (identifier "uVar6") (, ",") (identifier "uVar11") (, ",") (identifier "puVar12") (, ",") (binary_expression "unaff_EDI + 0x79aa9" (identifier "unaff_EDI") (+ "+") (number_literal "0x79aa9")) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";"))) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" (identifier "CloseBlob") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" (identifier "DestroyImageList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_1 * function_1(type_2 *var_2,type_3 *var_7)

{
  type_4 QVar1;
  type_5 uVar2;
  type_1 *pIVar3;
  type_6 var_10;
  type_7 var_13;
  int var_21;
  type_4 *var_18;
  int *piVar8;
  char *pcVar9;
  type_7 var_19;
  int var_4;
  bool bVar11;
  size_t sVar12;
  type_8 severity;
  int var_25;
  type_7 var_26;
  int var_27;
  
  var_1();
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x76b69),(char *)(var_4 + 0xdbcfe),0x80,
                  (char *)(var_4 + 0xdbd49));
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x76b91),(char *)(var_4 + 0xdbcfe),0x81,
                  (char *)(var_4 + 0xdbd49));
  }
  if (var_2->debug != var_5) {
    var_6(TraceEvent,(char *)(var_4 + 0xdbcfe),(char *)(var_4 + 0xdbd39),0x83,
                   (char *)(var_4 + 0x8eeb7),var_2->filename);
  }
  if (var_7 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x77aa5),(char *)(var_4 + 0xdbcfe),0x85,
                  (char *)(var_4 + 0xdbd49));
  }
  if (var_7->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x787d5),(char *)(var_4 + 0xdbcfe),0x86,
                  (char *)(var_4 + 0xdbd49));
  }
  pIVar3 = var_8(var_2,var_7);
  var_10 = var_9(var_2,pIVar3,ReadBinaryBlobMode,var_7);
  if (var_10 == var_5) {
    var_11(pIVar3);
    return (type_1 *)0x0;
  }
  var_13 = var_12(pIVar3);
  if ((var_13 & 0x10) == 0) {
    sVar12 = var_12(pIVar3);
    pIVar3->columns = sVar12;
    sVar12 = var_12(pIVar3);
    pIVar3->rows = sVar12;
  }
  else {
    uVar2 = var_14(pIVar3);
    pIVar3->columns = (type_7)uVar2;
    uVar2 = var_14(pIVar3);
    pIVar3->rows = (type_7)uVar2;
  }
  if ((pIVar3->columns == 0) || (pIVar3->rows == 0)) {
    pcVar9 = (char *)(var_4 + 0xa3e33);
    severity = CorruptImageError;
    sVar12 = 0x9d;
  }
  else {
    var_21 = var_12(pIVar3);
    if ((char)var_21 == '\x01') {
      var_10 = var_15(pIVar3,2,var_7);
      if (var_10 != var_5) {
        if (var_2->ping == var_5) {
          var_10 = var_16(pIVar3,pIVar3->columns,pIVar3->rows,var_7);
          if (var_10 == var_5) {
            pIVar3 = var_11(pIVar3);
            return pIVar3;
          }
          var_26 = 0;
          var_27 = 0;
          var_25 = 0;
          if (0 < (int)pIVar3->rows) {
            do {
              var_18 = var_17(pIVar3,0,var_25,pIVar3->columns,1,var_7);
              if (var_18 == (type_4 *)0x0) break;
              if (0 < (int)pIVar3->columns) {
                var_19 = 0;
                var_21 = 0;
                var_13 = 0;
                do {
                  if ((char)var_19 == '\0') {
                    var_13 = var_12(pIVar3);
                    var_19 = var_19 & 0xff;
                    if (var_13 == 0xffffffff) {
                      pcVar9 = (char *)(var_4 + 0x84110);
                      severity = CorruptImageError;
                      sVar12 = 0xbb;
                      goto LAB_00228208;
                    }
                  }
                  if ((var_13 >> (7 - var_19 & 0x1f) & 1) == 0) {
                    QVar1 = 1.0;
                  }
                  else {
                    QVar1 = 0.0;
                  }
                  if (pIVar3->channel_map[5].traits != var_20) {
                    var_18[pIVar3->channel_map[5].offset] = QVar1;
                  }
                  var_19 = var_19 + 1;
                  if ((char)var_19 == '\b') {
                    var_19 = 0;
                  }
                  var_21 = var_21 + 1;
                  var_18 = var_18 + pIVar3->number_channels;
                } while (var_21 < (int)pIVar3->columns);
              }
              var_10 = var_22(pIVar3,var_7);
              if (var_10 == var_5) break;
              var_13 = pIVar3->rows;
              if (pIVar3->previous == (type_9 *)0x0) {
                var_10 = var_23(pIVar3,(char *)(var_4 + 0x82c74),
                                         var_24(var_27,var_26),(type_10)var_13);
                if (var_10 == var_5) break;
                var_13 = pIVar3->rows;
              }
              var_25 = var_25 + 1;
              bVar11 = 0xfffffffe < var_26;
              var_26 = var_26 + 1;
              var_27 = var_27 + (type_7)bVar11;
            } while (var_25 < (int)var_13);
          }
          var_28(pIVar3,var_7);
          var_21 = var_29(pIVar3);
          if (var_21 != 0) {
            piVar8 = var_30();
            pcVar9 = var_31(*piVar8);
            var_32
                      (var_7,(char *)(var_4 + 0xdbcfe),(char *)(var_4 + 0xdbd39),0xd0,
                       CorruptImageError,(char *)(var_4 + 0xa3e47),(char *)(var_4 + 0x76c34)
                       ,pIVar3->filename,pcVar9);
            var_33(pcVar9);
          }
        }
        var_34(pIVar3);
        pIVar3 = var_35(pIVar3);
        return pIVar3;
      }
      pcVar9 = (char *)(var_4 + 0x7743f);
      severity = ErrorException;
      sVar12 = 0xa2;
    }
    else {
      pcVar9 = (char *)(var_4 + 0xdbd0b);
      severity = CoderError;
      sVar12 = 0xa0;
    }
  }
LAB_00228208:
  var_32
            (var_7,(char *)(var_4 + 0xdbcfe),(char *)(var_4 + 0xdbd39),sVar12,severity,
             pcVar9,(char *)(var_4 + 0x79aa9),var_2->filename);
  var_34(pIVar3);
  var_11(pIVar3);
  return (type_1 *)0x0;
}


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

undefined4 MASKED(int param_1,int param_2)

{
  undefined8 uVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  undefined4 uVar6;
  int *piVar7;
  uint uVar8;
  int iVar9;
  int unaff_EDI;
  bool bVar10;
  undefined4 uVar11;
  undefined *puVar12;
  int local_28;
  uint local_24;
  int local_20;
  
  FUN_0004c803();
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b69),(char *)(unaff_EDI + 0xdbcfe),0x80,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x76b91),(char *)(unaff_EDI + 0xdbcfe),0x81,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0x83,unaff_EDI + 0x8eeb7,
                   param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x77aa5),(char *)(unaff_EDI + 0xdbcfe),0x85,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0x787d5),(char *)(unaff_EDI + 0xdbcfe),0x86,
                  (char *)(unaff_EDI + 0xdbd49));
  }
  iVar3 = AcquireImage(param_1,param_2);
  iVar4 = OpenBlob(param_1,iVar3,2,param_2);
  if (iVar4 == 0) {
    DestroyImageList(iVar3);
    return 0;
  }
  uVar5 = ReadBlobByte(iVar3);
  if ((uVar5 & 0x10) == 0) {
    uVar6 = ReadBlobByte(iVar3);
    *(undefined4 *)(iVar3 + 0x18) = uVar6;
    uVar6 = ReadBlobByte(iVar3);
    *(undefined4 *)(iVar3 + 0x1c) = uVar6;
  }
  else {
    uVar5 = ReadBlobMSBShort(iVar3);
    *(uint *)(iVar3 + 0x18) = uVar5 & 0xffff;
    uVar5 = ReadBlobMSBShort(iVar3);
    *(uint *)(iVar3 + 0x1c) = uVar5 & 0xffff;
  }
  if ((*(int *)(iVar3 + 0x18) == 0) || (*(int *)(iVar3 + 0x1c) == 0)) {
    puVar12 = &UNK_000a3e33 + unaff_EDI;
    uVar11 = 0x1a9;
    uVar6 = 0x9d;
  }
  else {
    cVar2 = ReadBlobByte(iVar3);
    if (cVar2 == '\x01') {
      iVar4 = AcquireImageColormap(iVar3,2,param_2);
      if (iVar4 != 0) {
        if (*(int *)(param_1 + 0x1bc) == 0) {
          iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),
                                 param_2);
          if (iVar4 == 0) {
            uVar6 = DestroyImageList(iVar3);
            return uVar6;
          }
          local_24 = 0;
          local_20 = 0;
          local_28 = 0;
          if (0 < *(int *)(iVar3 + 0x1c)) {
            do {
              iVar4 = QueueAuthenticPixels(iVar3,0,local_28,*(undefined4 *)(iVar3 + 0x18),1,param_2)
              ;
              if (iVar4 == 0) break;
              if (0 < *(int *)(iVar3 + 0x18)) {
                uVar8 = 0;
                iVar9 = 0;
                uVar5 = 0;
                do {
                  if ((char)uVar8 == '\0') {
                    uVar5 = ReadBlobByte(iVar3);
                    uVar8 = uVar8 & 0xff;
                    if (uVar5 == 0xffffffff) {
                      puVar12 = &UNK_00084110 + unaff_EDI;
                      uVar11 = 0x1a9;
                      uVar6 = 0xbb;
                      goto LAB_00228208;
                    }
                  }
                  if ((uVar5 >> (7 - uVar8 & 0x1f) & 1) == 0) {
                    uVar1 = 0x3ff0000000000000;
                  }
                  else {
                    uVar1 = 0;
                  }
                  if (*(int *)(*(int *)(iVar3 + 0x2a8) + 0x40) != 0) {
                    *(undefined8 *)(iVar4 + *(int *)(*(int *)(iVar3 + 0x2a8) + 0x44) * 8) = uVar1;
                  }
                  uVar8 = uVar8 + 1;
                  if ((char)uVar8 == '\b') {
                    uVar8 = 0;
                  }
                  iVar9 = iVar9 + 1;
                  iVar4 = iVar4 + *(int *)(iVar3 + 0x298) * 8;
                } while (iVar9 < *(int *)(iVar3 + 0x18));
              }
              iVar4 = SyncAuthenticPixels(iVar3,param_2);
              if (iVar4 == 0) break;
              iVar4 = *(int *)(iVar3 + 0x1c);
              if (*(int *)(iVar3 + 0x333c) == 0) {
                iVar4 = SetImageProgress(iVar3,&UNK_00082c74 + unaff_EDI,local_24,local_20,iVar4,0);
                if (iVar4 == 0) break;
                iVar4 = *(int *)(iVar3 + 0x1c);
              }
              local_28 = local_28 + 1;
              bVar10 = 0xfffffffe < local_24;
              local_24 = local_24 + 1;
              local_20 = local_20 + (uint)bVar10;
            } while (local_28 < iVar4);
          }
          SyncImage(iVar3,param_2);
          iVar4 = EOFBlob(iVar3);
          if (iVar4 != 0) {
            piVar7 = __errno_location();
            uVar6 = GetExceptionMessage(*piVar7);
            ThrowMagickException
                      (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,0xd0,0x1a9,
                       &UNK_000a3e47 + unaff_EDI,unaff_EDI + 0x76c34,iVar3 + 0x318,uVar6);
            DestroyString(uVar6);
          }
        }
        CloseBlob(iVar3);
        uVar6 = GetFirstImageInList(iVar3);
        return uVar6;
      }
      puVar12 = (undefined *)(unaff_EDI + 0x7743f);
      uVar11 = 400;
      uVar6 = 0xa2;
    }
    else {
      puVar12 = (undefined *)(unaff_EDI + 0xdbd0b);
      uVar11 = 0x1c2;
      uVar6 = 0xa0;
    }
  }
LAB_00228208:
  ThrowMagickException
            (param_2,unaff_EDI + 0xdbcfe,unaff_EDI + 0xdbd39,uVar6,uVar11,puVar12,
             unaff_EDI + 0x79aa9,param_1 + 0x21f0);
  CloseBlob(iVar3);
  DestroyImageList(iVar3);
  return 0;
}

