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

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

{
  PixelChannelMap *pPVar1;
  Quantum QVar2;
  Image *pIVar3;
  MagickBooleanType MVar4;
  uint uVar5;
  int *piVar6;
  char *pcVar7;
  int iVar8;
  bool bVar9;
  size_t line;
  ExceptionType severity;
  int local_38;
  Quantum *local_34;
  int local_30;
  uint local_2c;
  int local_28;
  
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,
                  "ReadMONOImage");
  }
  if (image_info->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"
                 );
  }
  pIVar3 = AcquireImage(image_info,exception);
  if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {
    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);
    if (MVar4 == MagickFalse) {
      DestroyImageList(pIVar3);
      pIVar3 = (Image *)0x0;
    }
    else {
      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);
      if (MVar4 == MagickFalse) {
        piVar6 = __errno_location();
        pcVar7 = GetExceptionMessage(*piVar6);
        ThrowMagickException
                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,
                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);
        DestroyString(pcVar7);
      }
      pIVar3->depth = 1;
      MVar4 = AcquireImageColormap(pIVar3,2,exception);
      if (MVar4 == MagickFalse) {
        pcVar7 = "MemoryAllocationFailed";
        severity = ErrorException;
        line = 0x94;
        goto LAB_00222842;
      }
      if (image_info->ping == MagickFalse) {
        MVar4 = SetImageExtent(pIVar3,pIVar3->columns,pIVar3->rows,exception);
        if (MVar4 == MagickFalse) {
          pIVar3 = DestroyImageList(pIVar3);
          return pIVar3;
        }
        local_2c = 0;
        local_28 = 0;
        local_30 = 0;
        if (0 < (int)pIVar3->rows) {
          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),
                local_34 != (Quantum *)0x0) {
            if (0 < (int)pIVar3->columns) {
              uVar5 = 0;
              iVar8 = 0;
              local_38 = 0;
              do {
                if (iVar8 == 0) {
                  uVar5 = ReadBlobByte(pIVar3);
                }
                pPVar1 = pIVar3->channel_map;
                if (image_info->endian == LSBEndian) {
                  if ((uVar5 & 1) == 0) {
                    QVar2 = 1.0;
                  }
                  else {
                    QVar2 = 0.0;
                  }
                  if (pPVar1[5].traits != UndefinedPixelTrait) {
                    local_34[pPVar1[5].offset] = QVar2;
                  }
                }
                else if (pPVar1[5].traits != UndefinedPixelTrait) {
                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);
                }
                iVar8 = iVar8 + 1;
                if (iVar8 == 8) {
                  iVar8 = 0;
                }
                uVar5 = uVar5 >> 1;
                local_38 = local_38 + 1;
                local_34 = local_34 + pIVar3->number_channels;
              } while (local_38 < (int)pIVar3->columns);
            }
            MVar4 = SyncAuthenticPixels(pIVar3,exception);
            if ((MVar4 == MagickFalse) ||
               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),
                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;
            local_30 = local_30 + 1;
            bVar9 = 0xfffffffe < local_2c;
            local_2c = local_2c + 1;
            local_28 = local_28 + (uint)bVar9;
            if ((int)pIVar3->rows <= local_30) break;
          }
        }
        SyncImage(pIVar3,exception);
        iVar8 = EOFBlob(pIVar3);
        if (iVar8 != 0) {
          piVar6 = __errno_location();
          pcVar7 = GetExceptionMessage(*piVar6);
          ThrowMagickException
                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,
                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);
          DestroyString(pcVar7);
        }
      }
      CloseBlob(pIVar3);
      pIVar3 = GetFirstImageInList(pIVar3);
    }
    return pIVar3;
  }
  pcVar7 = "MustSpecifyImageSize";
  severity = OptionError;
  line = 0x85;
LAB_00222842:
  ThrowMagickException
            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",
             image_info->filename);
  CloseBlob(pIVar3);
  DestroyImageList(pIVar3);
  return (Image *)0x0;
}



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

undefined4 FUN_00222460(int param_1,int param_2)

{
  int iVar1;
  undefined8 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  int *piVar6;
  undefined4 uVar7;
  bool bVar8;
  undefined4 uVar9;
  char *pcVar10;
  int local_38;
  int local_34;
  int local_30;
  uint local_2c;
  int local_28;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,
                  "ReadMONOImage");
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"
                 );
  }
  iVar3 = AcquireImage(param_1,param_2);
  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {
    iVar4 = OpenBlob(param_1,iVar3,2,param_2);
    if (iVar4 == 0) {
      DestroyImageList(iVar3);
      uVar7 = 0;
    }
    else {
      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);
      if (iVar4 == 0) {
        piVar6 = __errno_location();
        uVar7 = GetExceptionMessage(*piVar6);
        ThrowMagickException
                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",
                   "\'%s\': %s",iVar3 + 0x318,uVar7);
        DestroyString(uVar7);
      }
      *(undefined4 *)(iVar3 + 0x20) = 1;
      iVar4 = AcquireImageColormap(iVar3,2,param_2);
      if (iVar4 == 0) {
        pcVar10 = "MemoryAllocationFailed";
        uVar9 = 400;
        uVar7 = 0x94;
        goto LAB_00222842;
      }
      if (*(int *)(param_1 + 0x1bc) == 0) {
        iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),
                               param_2);
        if (iVar4 == 0) {
          uVar7 = DestroyImageList(iVar3);
          return uVar7;
        }
        local_2c = 0;
        local_28 = 0;
        local_30 = 0;
        if (0 < *(int *)(iVar3 + 0x1c)) {
          while (local_34 = QueueAuthenticPixels
                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),
                local_34 != 0) {
            if (0 < *(int *)(iVar3 + 0x18)) {
              uVar5 = 0;
              iVar4 = 0;
              local_38 = 0;
              do {
                if (iVar4 == 0) {
                  uVar5 = ReadBlobByte(iVar3);
                }
                iVar1 = *(int *)(iVar3 + 0x2a8);
                if (*(int *)(param_1 + 0x38) == 1) {
                  if ((uVar5 & 1) == 0) {
                    uVar2 = 0x3ff0000000000000;
                  }
                  else {
                    uVar2 = 0;
                  }
                  if (*(int *)(iVar1 + 0x40) != 0) {
                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;
                  }
                }
                else if (*(int *)(iVar1 + 0x40) != 0) {
                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);
                }
                iVar4 = iVar4 + 1;
                if (iVar4 == 8) {
                  iVar4 = 0;
                }
                uVar5 = uVar5 >> 1;
                local_38 = local_38 + 1;
                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;
              } while (local_38 < *(int *)(iVar3 + 0x18));
            }
            iVar4 = SyncAuthenticPixels(iVar3,param_2);
            if ((iVar4 == 0) ||
               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,
                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;
            local_30 = local_30 + 1;
            bVar8 = 0xfffffffe < local_2c;
            local_2c = local_2c + 1;
            local_28 = local_28 + (uint)bVar8;
            if (*(int *)(iVar3 + 0x1c) <= local_30) break;
          }
        }
        SyncImage(iVar3,param_2);
        iVar4 = EOFBlob(iVar3);
        if (iVar4 != 0) {
          piVar6 = __errno_location();
          uVar7 = GetExceptionMessage(*piVar6);
          ThrowMagickException
                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",
                     "\'%s\': %s",iVar3 + 0x318,uVar7);
          DestroyString(uVar7);
        }
      }
      CloseBlob(iVar3);
      uVar7 = GetFirstImageInList(iVar3);
    }
    return uVar7;
  }
  pcVar10 = "MustSpecifyImageSize";
  uVar9 = 0x19a;
  uVar7 = 0x85;
LAB_00222842:
  ThrowMagickException
            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);
  CloseBlob(iVar3);
  DestroyImageList(iVar3);
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x1b6b97
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x40]
TEST EAX,EAX
JZ 0x002228e6
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [EAX + 0x31f4],0xabacadab
JNZ 0x002228ca
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x31f0]
TEST EAX,EAX
JNZ 0x002227e0
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JZ 0x00222902
MOV EAX,dword ptr [ESP + 0x44]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x00222921
SUB ESP,0x8
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x4c]
CALL 0x000313c0
ADD ESP,0x10
MOV EBP,dword ptr [EAX + 0x18]
MOV EDI,EAX
TEST EBP,EBP
JZ 0x00222820
MOV ESI,dword ptr [EAX + 0x1c]
TEST ESI,ESI
JZ 0x00222820
PUSH dword ptr [ESP + 0x44]
PUSH 0x2
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00222894
MOV EAX,dword ptr [EDI + 0x1ec]
SUB ESP,0x4
CDQ
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x00032ea0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00222760
SUB ESP,0x4
MOV dword ptr [EDI + 0x20],0x1
PUSH dword ptr [ESP + 0x48]
PUSH 0x2
PUSH EDI
CALL 0x000324e0
ADD ESP,0x10
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0x40]
JZ 0x002228a7
MOV ECX,dword ptr [EAX + 0x1bc]
TEST ECX,ECX
JNZ 0x00222740
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [EDI + 0x1c]
PUSH dword ptr [EDI + 0x18]
PUSH EDI
CALL 0x00031910
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00222880
MOV EDX,dword ptr [EDI + 0x1c]
LEA EAX,[EBX + 0xffed1c0b]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x1c],EAX
TEST EDX,EDX
JLE 0x002226cb
NOP
SUB ESP,0x8
PUSH dword ptr [ESP + 0x4c]
PUSH 0x1
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x20]
PUSH 0x0
PUSH EDI
CALL 0x00032e70
ADD ESP,0x20
MOV EBP,EAX
TEST EAX,EAX
JZ 0x002226cb
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
JLE 0x00222678
XOR EAX,EAX
XOR ESI,ESI
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x8],EBP
JMP 0x0022263f
TEST ECX,ECX
JZ 0x00222610
MOV ECX,EAX
MOV EDX,dword ptr [EDX + 0x44]
AND ECX,0x1
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,dword ptr [ESP + 0x8]
FILD dword ptr [ESP + 0x18]
FSTP qword ptr [ECX + EDX*0x8]
JMP 0x00222610
FSTP ST0
LEA ESI,[ESI]
ADD ESI,0x1
MOV EDX,0x0
MOV ECX,dword ptr [ESP + 0x8]
CMP ESI,0x8
CMOVZ ESI,EDX
MOV EDX,dword ptr [EDI + 0x298]
SHR EAX,0x1
ADD dword ptr [ESP + 0x4],0x1
LEA ECX,[ECX + EDX*0x8]
MOV dword ptr [ESP + 0x8],ECX
MOV ECX,dword ptr [ESP + 0x4]
CMP dword ptr [EDI + 0x18],ECX
JLE 0x00222678
TEST ESI,ESI
JZ 0x002227c0
MOV EBP,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [EDI + 0x2a8]
CMP dword ptr [EBP + 0x38],0x1
MOV ECX,dword ptr [EDX + 0x40]
JNZ 0x002225e8
TEST AL,0x1
JNZ 0x002227d8
FLD1
TEST ECX,ECX
JZ 0x00222608
MOV EDX,dword ptr [EDX + 0x44]
MOV ECX,dword ptr [ESP + 0x8]
FSTP qword ptr [ECX + EDX*0x8]
JMP 0x00222610
SUB ESP,0x8
PUSH dword ptr [ESP + 0x4c]
PUSH EDI
CALL 0x000323a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x002226cb
MOV EAX,dword ptr [EDI + 0x1c]
SUB ESP,0x8
XOR EDX,EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JZ 0x002226cb
ADD dword ptr [ESP + 0xc],0x1
ADD dword ptr [ESP + 0x10],0x1
MOV EAX,dword ptr [ESP + 0xc]
ADC dword ptr [ESP + 0x14],0x0
CMP dword ptr [EDI + 0x1c],EAX
JG 0x002225a0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x4c]
PUSH EDI
CALL 0x000334c0
MOV dword ptr [ESP],EDI
CALL 0x00030ee0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00222740
CALL 0x000305f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00031c10
MOV dword ptr [ESP],EAX
MOV ESI,EAX
LEA EAX,[EDI + 0x318]
PUSH EAX
LEA EAX,[EBX + 0xffec5bcb]
PUSH EAX
LEA EAX,[EBX + 0xffef2dde]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7d8]
PUSH 0x1a9
PUSH 0xbf
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH EAX
PUSH dword ptr [ESP + 0x70]
CALL 0x00032e80
ADD ESP,0x24
PUSH ESI
CALL 0x00032950
ADD ESP,0x10
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x000311d0
MOV dword ptr [ESP],EDI
CALL 0x00031a70
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x000305f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00031c10
MOV dword ptr [ESP],EAX
MOV ESI,EAX
LEA EAX,[EDI + 0x318]
PUSH EAX
LEA EAX,[EBX + 0xffec5bcb]
PUSH EAX
LEA EAX,[EBX + 0xffef2dde]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7d8]
PUSH 0x1a9
PUSH 0x8e
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH EAX
PUSH dword ptr [ESP + 0x70]
CALL 0x00032e80
ADD ESP,0x24
PUSH ESI
CALL 0x00032950
ADD ESP,0x10
JMP 0x00222524
SUB ESP,0xc
PUSH EDI
CALL 0x00030c90
ADD ESP,0x10
JMP 0x00222647
FLDZ
JMP 0x00222664
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x48]
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EBX + 0xffedde4e]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7d8]
PUSH 0x7f
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x002224a4
MOV EAX,dword ptr [ESP + 0x40]
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EBX + 0xffec8a40]
PUSH EAX
LEA EAX,[EBX + 0xffef2fdf]
PUSH EAX
PUSH 0x19a
PUSH 0x85
LEA EAX,[EBX + 0xfff2a7d8]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH EAX
PUSH dword ptr [ESP + 0x60]
CALL 0x00032e80
ADD ESP,0x14
PUSH EDI
CALL 0x000311d0
MOV dword ptr [ESP],EDI
CALL 0x000317a0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EDI
CALL 0x000317a0
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EDI
CALL 0x000317a0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00222754
ADD EAX,0x21f0
PUSH EAX
LEA EAX,[EBX + 0xffec8a40]
PUSH EAX
LEA EAX,[EBX + 0xffec63d6]
PUSH EAX
PUSH 0x190
PUSH 0x94
JMP 0x00222842
LEA EAX,[EBX + 0xfff2a7e8]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH 0x7d
PUSH EAX
LEA EAX,[EBX + 0xffec5b28]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff2a7e8]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH 0x7c
PUSH EAX
LEA EAX,[EBX + 0xffec5b00]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff2a7e8]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH 0x81
PUSH EAX
LEA EAX,[EBX + 0xffec6a3c]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff2a7e8]
PUSH EAX
LEA EAX,[EBX + 0xfff2a7b3]
PUSH 0x82
PUSH EAX
LEA EAX,[EBX + 0xffec776c]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00222460(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}\n\n" comment (function_definition "undefined4 FUN_00222460(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" type_identifier (function_declarator "FUN_00222460(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  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\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("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,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,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" identifier (argument_list "(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" ( number_literal , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\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("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\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("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (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 )))) ;) (if_statement "if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\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    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }" { (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      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }" { (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" else (compound_statement "{\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" { (expression_statement "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);" (assignment_expression "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" identifier = (call_expression "DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" identifier (argument_list "(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" ( identifier , (pointer_expression "*(int *)(iVar3 + 0x1ec)" * (cast_expression "(int *)(iVar3 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1ec)" ( (binary_expression "iVar3 + 0x1ec" identifier + number_literal) )))) , (binary_expression "*(int *)(iVar3 + 0x1ec) >> 0x1f" (pointer_expression "*(int *)(iVar3 + 0x1ec)" * (cast_expression "(int *)(iVar3 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1ec)" ( (binary_expression "iVar3 + 0x1ec" identifier + number_literal) )))) >> number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = number_literal) ;) (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        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" { (expression_statement "pcVar10 = "MemoryAllocationFailed";" (assignment_expression "pcVar10 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar9 = 400;" (assignment_expression "uVar9 = 400" identifier = number_literal) ;) (expression_statement "uVar7 = 0x94;" (assignment_expression "uVar7 = 0x94" identifier = number_literal) ;) (goto_statement "goto LAB_00222842;" goto statement_identifier ;) })) (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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" { (expression_statement "uVar7 = DestroyImageList(iVar3);" (assignment_expression "uVar7 = DestroyImageList(iVar3)" identifier = (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar7;" return identifier ;) })) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\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          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }" { (while_statement "while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" while (parenthesized_expression "(local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0)" ( (comma_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0" (assignment_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier = (call_expression "QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier (argument_list "(iVar3,0,local_30,*(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 )))) , (binary_expression "local_34 != 0" identifier != number_literal)) )) (compound_statement "{\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" { (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(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              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              }" { (if_statement "if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar5 = ReadBlobByte(iVar3);\n                }" { (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) })) (expression_statement "iVar1 = *(int *)(iVar3 + 0x2a8);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x2a8)" identifier = (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) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(*(int *)(param_1 + 0x38) == 1)" ( (binary_expression "*(int *)(param_1 + 0x38) == 1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }" { (if_statement "if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }" if (parenthesized_expression "((uVar5 & 1) == 0)" ( (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    uVar2 = 0x3ff0000000000000;\n                  }" { (expression_statement "uVar2 = 0x3ff0000000000000;" (assignment_expression "uVar2 = 0x3ff0000000000000" identifier = number_literal) ;) }) (else_clause "else {\n                    uVar2 = 0;\n                  }" else (compound_statement "{\n                    uVar2 = 0;\n                  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" * (cast_expression "(int *)(iVar1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" { (expression_statement "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;" (assignment_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2" (pointer_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" * (cast_expression "(int *)(iVar1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) }) (else_clause "else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" else (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" * (cast_expression "(int *)(iVar1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" { (expression_statement "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);" (assignment_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1)" (pointer_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" * (cast_expression "(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" * (cast_expression "(int *)(iVar1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)(uVar5 & 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )))) ;) })))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 8) {\n                  iVar4 = 0;\n                }" if (parenthesized_expression "(iVar4 == 8)" ( (binary_expression "iVar4 == 8" identifier == number_literal) )) (compound_statement "{\n                  iVar4 = 0;\n                }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8" identifier = (binary_expression "local_34 + *(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 "(local_38 < *(int *)(iVar3 + 0x18))" ( (binary_expression "local_38 < *(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) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;" if (parenthesized_expression "((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" ( (comma_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0" (assignment_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" identifier = (call_expression "SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" identifier (argument_list "(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" ( identifier , (string_literal ""Load/Image"" " string_content ") , identifier , identifier , (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) )))) , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) (expression_statement "bVar8 = 0xfffffffe < local_2c;" (assignment_expression "bVar8 = 0xfffffffe < local_2c" identifier = (binary_expression "0xfffffffe < local_2c" number_literal < identifier)) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "local_28 = local_28 + (uint)bVar8;" (assignment_expression "local_28 = local_28 + (uint)bVar8" identifier = (binary_expression "local_28 + (uint)bVar8" identifier + (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar3 + 0x1c) <= local_30) break;" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) <= local_30)" ( (binary_expression "*(int *)(iVar3 + 0x1c) <= local_30" (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) )))) <= identifier) )) (break_statement "break;" break ;)) })) })) (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          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) })) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar7 = GetFirstImageInList(iVar3);" (assignment_expression "uVar7 = GetFirstImageInList(iVar3)" identifier = (call_expression "GetFirstImageInList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) }))) (return_statement "return uVar7;" return identifier ;) })) (expression_statement "pcVar10 = "MustSpecifyImageSize";" (assignment_expression "pcVar10 = "MustSpecifyImageSize"" identifier = (string_literal ""MustSpecifyImageSize"" " string_content ")) ;) (expression_statement "uVar9 = 0x19a;" (assignment_expression "uVar9 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar7 = 0x85;" (assignment_expression "uVar7 = 0x85" identifier = number_literal) ;) (labeled_statement "LAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" statement_identifier : (expression_statement "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (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: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\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 "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nImage * ReadMONOImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  PixelChannelMap *pPVar1;\n  Quantum QVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int *piVar6;\n  char *pcVar7;\n  int iVar8;\n  bool bVar9;\n  size_t line;\n  ExceptionType severity;\n  int local_38;\n  Quantum *local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {\n    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n    if (MVar4 == MagickFalse) {\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }\n    return pIVar3;\n  }\n  pcVar7 = "MustSpecifyImageSize";\n  severity = OptionError;\n  line = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "Image * ReadMONOImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  PixelChannelMap *pPVar1;\n  Quantum QVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int *piVar6;\n  char *pcVar7;\n  int iVar8;\n  bool bVar9;\n  size_t line;\n  ExceptionType severity;\n  int local_38;\n  Quantum *local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {\n    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n    if (MVar4 == MagickFalse) {\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }\n    return pIVar3;\n  }\n  pcVar7 = "MustSpecifyImageSize";\n  severity = OptionError;\n  line = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}" type_identifier (pointer_declarator "* ReadMONOImage(ImageInfo *image_info,ExceptionInfo *exception)" * (function_declarator "ReadMONOImage(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  PixelChannelMap *pPVar1;\n  Quantum QVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  int *piVar6;\n  char *pcVar7;\n  int iVar8;\n  bool bVar9;\n  size_t line;\n  ExceptionType severity;\n  int local_38;\n  Quantum *local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  pIVar3 = AcquireImage(image_info,exception);\n  if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {\n    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n    if (MVar4 == MagickFalse) {\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }\n    return pIVar3;\n  }\n  pcVar7 = "MustSpecifyImageSize";\n  severity = OptionError;\n  line = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename);\n  CloseBlob(pIVar3);\n  DestroyImageList(pIVar3);\n  return (Image *)0x0;\n}" { (declaration "PixelChannelMap *pPVar1;" type_identifier (pointer_declarator "*pPVar1" * identifier) ;) (declaration "Quantum QVar2;" 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 *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "size_t line;" primitive_type identifier ;) (declaration "ExceptionType severity;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "Quantum *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\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("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\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("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",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,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename);" (call_expression "LogMagickEvent(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename)" identifier (argument_list "(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",image_info->filename)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\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("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\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("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (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 )))) ;) (if_statement "if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {\n    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n    if (MVar4 == MagickFalse) {\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }\n    return pIVar3;\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    MVar4 = OpenBlob(image_info,pIVar3,ReadBinaryBlobMode,exception);\n    if (MVar4 == MagickFalse) {\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }\n    return pIVar3;\n  }" { (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      pIVar3 = (Image *)0x0;\n    }\n    else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      DestroyImageList(pIVar3);\n      pIVar3 = (Image *)0x0;\n    }" { (expression_statement "DestroyImageList(pIVar3);" (call_expression "DestroyImageList(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier ))) ;) (expression_statement "pIVar3 = (Image *)0x0;" (assignment_expression "pIVar3 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }" else (compound_statement "{\n      MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);\n      if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }\n      pIVar3->depth = 1;\n      MVar4 = AcquireImageColormap(pIVar3,2,exception);\n      if (MVar4 == MagickFalse) {\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }\n      }\n      CloseBlob(pIVar3);\n      pIVar3 = GetFirstImageInList(pIVar3);\n    }" { (expression_statement "MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset);" (assignment_expression "MVar4 = DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset)" identifier = (call_expression "DiscardBlobBytes(pIVar3,(longlong)pIVar3->offset)" identifier (argument_list "(pIVar3,(longlong)pIVar3->offset)" ( identifier , (cast_expression "(longlong)pIVar3->offset" ( (type_descriptor "longlong" type_identifier) ) (field_expression "pIVar3->offset" identifier -> field_identifier)) )))) ;) (if_statement "if (MVar4 == MagickFalse) {\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        piVar6 = __errno_location();\n        pcVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n        DestroyString(pcVar7);\n      }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "pcVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);" (call_expression "ThrowMagickException\n                  (exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7)" identifier (argument_list "(exception,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,\n                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , identifier , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (field_expression "pIVar3->filename" identifier -> field_identifier) , identifier ))) ;) (expression_statement "DestroyString(pcVar7);" (call_expression "DestroyString(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) (expression_statement "pIVar3->depth = 1;" (assignment_expression "pIVar3->depth = 1" (field_expression "pIVar3->depth" identifier -> field_identifier) = number_literal) ;) (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        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        pcVar7 = "MemoryAllocationFailed";\n        severity = ErrorException;\n        line = 0x94;\n        goto LAB_00222842;\n      }" { (expression_statement "pcVar7 = "MemoryAllocationFailed";" (assignment_expression "pcVar7 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "severity = ErrorException;" (assignment_expression "severity = ErrorException" identifier = identifier) ;) (expression_statement "line = 0x94;" (assignment_expression "line = 0x94" identifier = number_literal) ;) (goto_statement "goto LAB_00222842;" goto statement_identifier ;) })) (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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\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_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }\n        SyncImage(pIVar3,exception);\n        iVar8 = EOFBlob(pIVar3);\n        if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\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_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pIVar3->rows) {\n          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\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          while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }\n        }" { (while_statement "while (local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0) {\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }" while (parenthesized_expression "(local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0)" ( (comma_expression "local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception),\n                local_34 != (Quantum *)0x0" (assignment_expression "local_34 = QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception)" identifier = (call_expression "QueueAuthenticPixels(pIVar3,0,local_30,pIVar3->columns,1,exception)" identifier (argument_list "(pIVar3,0,local_30,pIVar3->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "pIVar3->columns" identifier -> field_identifier) , number_literal , identifier )))) , (binary_expression "local_34 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }\n            MVar4 = SyncAuthenticPixels(pIVar3,exception);\n            if ((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;\n            local_30 = local_30 + 1;\n            bVar9 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar9;\n            if ((int)pIVar3->rows <= local_30) break;\n          }" { (if_statement "if (0 < (int)pIVar3->columns) {\n              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (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              uVar5 = 0;\n              iVar8 = 0;\n              local_38 = 0;\n              do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);\n            }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              } while (local_38 < (int)pIVar3->columns);" do (compound_statement "{\n                if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }\n                pPVar1 = pIVar3->channel_map;\n                if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }\n                iVar8 = iVar8 + 1;\n                if (iVar8 == 8) {\n                  iVar8 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + pIVar3->number_channels;\n              }" { (if_statement "if (iVar8 == 0) {\n                  uVar5 = ReadBlobByte(pIVar3);\n                }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar5 = ReadBlobByte(pIVar3);\n                }" { (expression_statement "uVar5 = ReadBlobByte(pIVar3);" (assignment_expression "uVar5 = ReadBlobByte(pIVar3)" identifier = (call_expression "ReadBlobByte(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) })) (expression_statement "pPVar1 = pIVar3->channel_map;" (assignment_expression "pPVar1 = pIVar3->channel_map" identifier = (field_expression "pIVar3->channel_map" identifier -> field_identifier)) ;) (if_statement "if (image_info->endian == LSBEndian) {\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }\n                else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(image_info->endian == LSBEndian)" ( (binary_expression "image_info->endian == LSBEndian" (field_expression "image_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                  if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }\n                }" { (if_statement "if ((uVar5 & 1) == 0) {\n                    QVar2 = 1.0;\n                  }\n                  else {\n                    QVar2 = 0.0;\n                  }" if (parenthesized_expression "((uVar5 & 1) == 0)" ( (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    QVar2 = 1.0;\n                  }" { (expression_statement "QVar2 = 1.0;" (assignment_expression "QVar2 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                    QVar2 = 0.0;\n                  }" else (compound_statement "{\n                    QVar2 = 0.0;\n                  }" { (expression_statement "QVar2 = 0.0;" (assignment_expression "QVar2 = 0.0" identifier = number_literal) ;) }))) (if_statement "if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }" if (parenthesized_expression "(pPVar1[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[5].traits != UndefinedPixelTrait" (field_expression "pPVar1[5].traits" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    local_34[pPVar1[5].offset] = QVar2;\n                  }" { (expression_statement "local_34[pPVar1[5].offset] = QVar2;" (assignment_expression "local_34[pPVar1[5].offset] = QVar2" (subscript_expression "local_34[pPVar1[5].offset]" identifier [ (field_expression "pPVar1[5].offset" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;) })) }) (else_clause "else if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }" else (if_statement "if (pPVar1[5].traits != UndefinedPixelTrait) {\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(pPVar1[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[5].traits != UndefinedPixelTrait" (field_expression "pPVar1[5].traits" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                  local_34[pPVar1[5].offset] = (double)(uVar5 & 1);\n                }" { (expression_statement "local_34[pPVar1[5].offset] = (double)(uVar5 & 1);" (assignment_expression "local_34[pPVar1[5].offset] = (double)(uVar5 & 1)" (subscript_expression "local_34[pPVar1[5].offset]" identifier [ (field_expression "pPVar1[5].offset" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) ]) = (cast_expression "(double)(uVar5 & 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )))) ;) })))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 8) {\n                  iVar8 = 0;\n                }" if (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) (compound_statement "{\n                  iVar8 = 0;\n                }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + pIVar3->number_channels;" (assignment_expression "local_34 = local_34 + pIVar3->number_channels" identifier = (binary_expression "local_34 + pIVar3->number_channels" identifier + (field_expression "pIVar3->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_38 < (int)pIVar3->columns)" ( (binary_expression "local_38 < (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) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)) break;" if (parenthesized_expression "((MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse))" ( (binary_expression "(MVar4 == MagickFalse) ||\n               (MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)" (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) || (parenthesized_expression "(MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse)" ( (comma_expression "MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows), MVar4 == MagickFalse" (assignment_expression "MVar4 = SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows)" identifier = (call_expression "SetImageProgress(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows)" identifier (argument_list "(pIVar3,"Load/Image",CONCAT44(local_28,local_2c),\n                                         (ulonglong)pIVar3->rows)" ( identifier , (string_literal ""Load/Image"" " string_content ") , (call_expression "CONCAT44(local_28,local_2c)" identifier (argument_list "(local_28,local_2c)" ( identifier , identifier ))) , (cast_expression "(ulonglong)pIVar3->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "pIVar3->rows" identifier -> field_identifier)) )))) , (binary_expression "MVar4 == MagickFalse" identifier == identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = 0xfffffffe < local_2c;" (assignment_expression "bVar9 = 0xfffffffe < local_2c" identifier = (binary_expression "0xfffffffe < local_2c" number_literal < identifier)) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "local_28 = local_28 + (uint)bVar9;" (assignment_expression "local_28 = local_28 + (uint)bVar9" identifier = (binary_expression "local_28 + (uint)bVar9" identifier + (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((int)pIVar3->rows <= local_30) break;" if (parenthesized_expression "((int)pIVar3->rows <= local_30)" ( (binary_expression "(int)pIVar3->rows <= local_30" (cast_expression "(int)pIVar3->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->rows" identifier -> field_identifier)) <= identifier) )) (break_statement "break;" break ;)) })) })) (expression_statement "SyncImage(pIVar3,exception);" (call_expression "SyncImage(pIVar3,exception)" identifier (argument_list "(pIVar3,exception)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = EOFBlob(pIVar3);" (assignment_expression "iVar8 = EOFBlob(pIVar3)" identifier = (call_expression "EOFBlob(pIVar3)" identifier (argument_list "(pIVar3)" ( identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar6 = __errno_location();\n          pcVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);\n          DestroyString(pcVar7);\n        }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "pcVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);" (call_expression "ThrowMagickException\n                    (exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7)" identifier (argument_list "(exception,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,\n                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , identifier , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (field_expression "pIVar3->filename" identifier -> field_identifier) , identifier ))) ;) (expression_statement "DestroyString(pcVar7);" (call_expression "DestroyString(pcVar7)" identifier (argument_list "(pcVar7)" ( 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 "pcVar7 = "MustSpecifyImageSize";" (assignment_expression "pcVar7 = "MustSpecifyImageSize"" identifier = (string_literal ""MustSpecifyImageSize"" " string_content ")) ;) (expression_statement "severity = OptionError;" (assignment_expression "severity = OptionError" identifier = identifier) ;) (expression_statement "line = 0x85;" (assignment_expression "line = 0x85" identifier = number_literal) ;) (labeled_statement "LAB_00222842:\n  ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename);" statement_identifier : (expression_statement "ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename);" (call_expression "ThrowMagickException\n            (exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename)" identifier (argument_list "(exception,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",\n             image_info->filename)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (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_00222460(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00222460(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" type_identifier (function_declarator "FUN_00222460(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  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" { (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\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("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,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,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" identifier (argument_list "(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" ( number_literal , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\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("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/mono.c"" " string_content ") , number_literal , (string_literal ""ReadMONOImage"" " string_content ") ))) ;) })) (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 )))) ;) (if_statement "if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\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    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }" { (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      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }" { (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" else (compound_statement "{\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" { (expression_statement "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);" (assignment_expression "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" identifier = (call_expression "DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" identifier (argument_list "(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" ( identifier , (pointer_expression "*(int *)(iVar3 + 0x1ec)" * (cast_expression "(int *)(iVar3 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1ec)" ( (binary_expression "iVar3 + 0x1ec" identifier + number_literal) )))) , (binary_expression "*(int *)(iVar3 + 0x1ec) >> 0x1f" (pointer_expression "*(int *)(iVar3 + 0x1ec)" * (cast_expression "(int *)(iVar3 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1ec)" ( (binary_expression "iVar3 + 0x1ec" identifier + number_literal) )))) >> number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = number_literal) ;) (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        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" { (expression_statement "pcVar10 = "MemoryAllocationFailed";" (assignment_expression "pcVar10 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar9 = 400;" (assignment_expression "uVar9 = 400" identifier = number_literal) ;) (expression_statement "uVar7 = 0x94;" (assignment_expression "uVar7 = 0x94" identifier = number_literal) ;) (goto_statement "goto LAB_00222842;" goto statement_identifier ;) })) (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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" { (expression_statement "uVar7 = DestroyImageList(iVar3);" (assignment_expression "uVar7 = DestroyImageList(iVar3)" identifier = (call_expression "DestroyImageList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (return_statement "return uVar7;" return identifier ;) })) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\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          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }" { (while_statement "while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" while (parenthesized_expression "(local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0)" ( (comma_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0" (assignment_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier = (call_expression "QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" identifier (argument_list "(iVar3,0,local_30,*(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 )))) , (binary_expression "local_34 != 0" identifier != number_literal)) )) (compound_statement "{\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" { (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(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              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              }" { (if_statement "if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar5 = ReadBlobByte(iVar3);\n                }" { (expression_statement "uVar5 = ReadBlobByte(iVar3);" (assignment_expression "uVar5 = ReadBlobByte(iVar3)" identifier = (call_expression "ReadBlobByte(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) })) (expression_statement "iVar1 = *(int *)(iVar3 + 0x2a8);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x2a8)" identifier = (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) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(*(int *)(param_1 + 0x38) == 1)" ( (binary_expression "*(int *)(param_1 + 0x38) == 1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }" { (if_statement "if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }" if (parenthesized_expression "((uVar5 & 1) == 0)" ( (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    uVar2 = 0x3ff0000000000000;\n                  }" { (expression_statement "uVar2 = 0x3ff0000000000000;" (assignment_expression "uVar2 = 0x3ff0000000000000" identifier = number_literal) ;) }) (else_clause "else {\n                    uVar2 = 0;\n                  }" else (compound_statement "{\n                    uVar2 = 0;\n                  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" * (cast_expression "(int *)(iVar1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" { (expression_statement "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;" (assignment_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2" (pointer_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" * (cast_expression "(int *)(iVar1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) }) (else_clause "else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" else (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" if (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" * (cast_expression "(int *)(iVar1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" { (expression_statement "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);" (assignment_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1)" (pointer_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" * (cast_expression "(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" ( (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" * (cast_expression "(int *)(iVar1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)(uVar5 & 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )))) ;) })))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 8) {\n                  iVar4 = 0;\n                }" if (parenthesized_expression "(iVar4 == 8)" ( (binary_expression "iVar4 == 8" identifier == number_literal) )) (compound_statement "{\n                  iVar4 = 0;\n                }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8" identifier = (binary_expression "local_34 + *(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 "(local_38 < *(int *)(iVar3 + 0x18))" ( (binary_expression "local_38 < *(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) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;" if (parenthesized_expression "((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" ( (comma_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0" (assignment_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" identifier = (call_expression "SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" identifier (argument_list "(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" ( identifier , (string_literal ""Load/Image"" " string_content ") , identifier , identifier , (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) )))) , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) (expression_statement "bVar8 = 0xfffffffe < local_2c;" (assignment_expression "bVar8 = 0xfffffffe < local_2c" identifier = (binary_expression "0xfffffffe < local_2c" number_literal < identifier)) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "local_28 = local_28 + (uint)bVar8;" (assignment_expression "local_28 = local_28 + (uint)bVar8" identifier = (binary_expression "local_28 + (uint)bVar8" identifier + (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar3 + 0x1c) <= local_30) break;" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) <= local_30)" ( (binary_expression "*(int *)(iVar3 + 0x1c) <= local_30" (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) )))) <= identifier) )) (break_statement "break;" break ;)) })) })) (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          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" identifier = (call_expression "GetExceptionMessage(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnexpectedEndOfFile"" " string_content ") , (string_literal ""\'%s\': %s"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "iVar3 + 0x318" identifier + number_literal) , identifier ))) ;) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) })) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "uVar7 = GetFirstImageInList(iVar3);" (assignment_expression "uVar7 = GetFirstImageInList(iVar3)" identifier = (call_expression "GetFirstImageInList(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) }))) (return_statement "return uVar7;" return identifier ;) })) (expression_statement "pcVar10 = "MustSpecifyImageSize";" (assignment_expression "pcVar10 = "MustSpecifyImageSize"" identifier = (string_literal ""MustSpecifyImageSize"" " string_content ")) ;) (expression_statement "uVar9 = 0x19a;" (assignment_expression "uVar9 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar7 = 0x85;" (assignment_expression "uVar7 = 0x85" identifier = number_literal) ;) (labeled_statement "LAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" statement_identifier : (expression_statement "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" ( identifier , (string_literal ""coders/mono.c"" " string_content ") , (string_literal ""ReadMONOImage"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (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 (pointer_declarator * 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 ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 = (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (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 , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence string_content ") , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 { (while_statement while (parenthesized_expression ( (comma_expression (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 )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & 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 IDENT + 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 IDENT + LIT) )))) * LIT)) )))) = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) })))) (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 = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (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))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (break_statement break ;)) })) })) (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 , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence string_content ") , (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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT , IDENT , (string_literal " string_content escape_sequence ") , (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_00222460(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00222460(int param_1,int param_2)" (identifier "FUN_00222460") (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  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  bool bVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  int local_38;\n  int local_34;\n  int local_30;\n  uint local_2c;\n  int local_28;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }\n  iVar3 = AcquireImage(param_1,param_2);\n  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }\n  pcVar10 = "MustSpecifyImageSize";\n  uVar9 = 0x19a;\n  uVar7 = 0x85;\nLAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);\n  CloseBlob(iVar3);\n  DestroyImageList(iVar3);\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" (identifier "__assert_fail") (argument_list "("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage")" (( "(") (string_literal ""image_info != (const ImageInfo *) NULL"" (" """) (string_content "image_info != (const ImageInfo *) NULL") (" """)) (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (number_literal "0x7c") (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\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("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,\n                  "ReadMONOImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (number_literal "0x7d") (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,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,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" (identifier "LogMagickEvent") (argument_list "(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) (, ",") (number_literal "0x7f") (, ",") (pointer_expression "&DAT_002b6e4e" (& "&") (identifier "DAT_002b6e4e")) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\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("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (number_literal "0x81") (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\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("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );\n  }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"\n                 )" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (number_literal "0x82") (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) () ")"))) (; ";")) (} "}"))) (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") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {\n    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\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    iVar4 = OpenBlob(param_1,iVar3,2,param_2);\n    if (iVar4 == 0) {\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }\n    return uVar7;\n  }" ({ "{") (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      uVar7 = 0;\n    }\n    else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DestroyImageList(iVar3);\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "DestroyImageList(iVar3);" (call_expression "DestroyImageList(iVar3)" (identifier "DestroyImageList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" (else "else") (compound_statement "{\n      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);\n      if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }\n      *(undefined4 *)(iVar3 + 0x20) = 1;\n      iVar4 = AcquireImageColormap(iVar3,2,param_2);\n      if (iVar4 == 0) {\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }\n      }\n      CloseBlob(iVar3);\n      uVar7 = GetFirstImageInList(iVar3);\n    }" ({ "{") (expression_statement "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);" (assignment_expression "iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" (identifier "iVar4") (= "=") (call_expression "DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" (identifier "DiscardBlobBytes") (argument_list "(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "*(int *)(iVar3 + 0x1ec)" (* "*") (cast_expression "(int *)(iVar3 + 0x1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1ec)" (( "(") (binary_expression "iVar3 + 0x1ec" (identifier "iVar3") (+ "+") (number_literal "0x1ec")) () ")")))) (, ",") (binary_expression "*(int *)(iVar3 + 0x1ec) >> 0x1f" (pointer_expression "*(int *)(iVar3 + 0x1ec)" (* "*") (cast_expression "(int *)(iVar3 + 0x1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1ec)" (( "(") (binary_expression "iVar3 + 0x1ec" (identifier "iVar3") (+ "+") (number_literal "0x1ec")) () ")")))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar6 = __errno_location();\n        uVar7 = GetExceptionMessage(*piVar6);\n        ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);\n        DestroyString(uVar7);\n      }" ({ "{") (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" (identifier "uVar7") (= "=") (call_expression "GetExceptionMessage(*piVar6)" (identifier "GetExceptionMessage") (argument_list "(*piVar6)" (( "(") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) () ")")))) (; ";")) (expression_statement "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",\n                   "\'%s\': %s",iVar3 + 0x318,uVar7)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) (, ",") (number_literal "0x8e") (, ",") (number_literal "0x1a9") (, ",") (string_literal ""UnexpectedEndOfFile"" (" """) (string_content "UnexpectedEndOfFile") (" """)) (, ",") (string_literal ""\'%s\': %s"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content ": %s") (" """)) (, ",") (binary_expression "iVar3 + 0x318" (identifier "iVar3") (+ "+") (number_literal "0x318")) (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" (identifier "DestroyString") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "1")) (; ";")) (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        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar10 = "MemoryAllocationFailed";\n        uVar9 = 400;\n        uVar7 = 0x94;\n        goto LAB_00222842;\n      }" ({ "{") (expression_statement "pcVar10 = "MemoryAllocationFailed";" (assignment_expression "pcVar10 = "MemoryAllocationFailed"" (identifier "pcVar10") (= "=") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """))) (; ";")) (expression_statement "uVar9 = 400;" (assignment_expression "uVar9 = 400" (identifier "uVar9") (= "=") (number_literal "400")) (; ";")) (expression_statement "uVar7 = 0x94;" (assignment_expression "uVar7 = 0x94" (identifier "uVar7") (= "=") (number_literal "0x94")) (; ";")) (goto_statement "goto LAB_00222842;" (goto "goto") (statement_identifier "LAB_00222842") (; ";")) (} "}"))) (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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }\n        local_2c = 0;\n        local_28 = 0;\n        local_30 = 0;\n        if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }\n        SyncImage(iVar3,param_2);\n        iVar4 = EOFBlob(iVar3);\n        if (iVar4 != 0) {\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\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          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = DestroyImageList(iVar3);\n          return uVar7;\n        }" ({ "{") (expression_statement "uVar7 = DestroyImageList(iVar3);" (assignment_expression "uVar7 = DestroyImageList(iVar3)" (identifier "uVar7") (= "=") (call_expression "DestroyImageList(iVar3)" (identifier "DestroyImageList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}"))) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(int *)(iVar3 + 0x1c)) {\n          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\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          while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }\n        }" ({ "{") (while_statement "while (local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0) {\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" (while "while") (parenthesized_expression "(local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0)" (( "(") (comma_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),\n                local_34 != 0" (assignment_expression "local_34 = QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (identifier "local_34") (= "=") (call_expression "QueueAuthenticPixels\n                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (identifier "QueueAuthenticPixels") (argument_list "(iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (identifier "local_30") (, ",") (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") () ")")))) (, ",") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }\n            iVar4 = SyncAuthenticPixels(iVar3,param_2);\n            if ((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;\n            local_30 = local_30 + 1;\n            bVar8 = 0xfffffffe < local_2c;\n            local_2c = local_2c + 1;\n            local_28 = local_28 + (uint)bVar8;\n            if (*(int *)(iVar3 + 0x1c) <= local_30) break;\n          }" ({ "{") (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(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              uVar5 = 0;\n              iVar4 = 0;\n              local_38 = 0;\n              do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));\n            }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              } while (local_38 < *(int *)(iVar3 + 0x18));" (do "do") (compound_statement "{\n                if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }\n                iVar1 = *(int *)(iVar3 + 0x2a8);\n                if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }\n                iVar4 = iVar4 + 1;\n                if (iVar4 == 8) {\n                  iVar4 = 0;\n                }\n                uVar5 = uVar5 >> 1;\n                local_38 = local_38 + 1;\n                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;\n              }" ({ "{") (if_statement "if (iVar4 == 0) {\n                  uVar5 = ReadBlobByte(iVar3);\n                }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar5 = ReadBlobByte(iVar3);\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 "iVar1 = *(int *)(iVar3 + 0x2a8);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x2a8)" (identifier "iVar1") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x38) == 1) {\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }\n                else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x38) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) == 1" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }\n                  if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }\n                }" ({ "{") (if_statement "if ((uVar5 & 1) == 0) {\n                    uVar2 = 0x3ff0000000000000;\n                  }\n                  else {\n                    uVar2 = 0;\n                  }" (if "if") (parenthesized_expression "((uVar5 & 1) == 0)" (( "(") (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" (( "(") (binary_expression "uVar5 & 1" (identifier "uVar5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar2 = 0x3ff0000000000000;\n                  }" ({ "{") (expression_statement "uVar2 = 0x3ff0000000000000;" (assignment_expression "uVar2 = 0x3ff0000000000000" (identifier "uVar2") (= "=") (number_literal "0x3ff0000000000000")) (; ";")) (} "}")) (else_clause "else {\n                    uVar2 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar2 = 0;\n                  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" (* "*") (cast_expression "(int *)(iVar1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;\n                  }" ({ "{") (expression_statement "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;" (assignment_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2" (pointer_expression "*(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" (( "(") (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" (identifier "local_34") (+ "+") (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" (* "*") (cast_expression "(int *)(iVar1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x44)" (( "(") (binary_expression "iVar1 + 0x44" (identifier "iVar1") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" (else "else") (if_statement "if (*(int *)(iVar1 + 0x40) != 0) {\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x40) != 0" (pointer_expression "*(int *)(iVar1 + 0x40)" (* "*") (cast_expression "(int *)(iVar1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);\n                }" ({ "{") (expression_statement "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);" (assignment_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1)" (pointer_expression "*(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" (* "*") (cast_expression "(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + *(int *)(iVar1 + 0x44) * 8)" (( "(") (binary_expression "local_34 + *(int *)(iVar1 + 0x44) * 8" (identifier "local_34") (+ "+") (binary_expression "*(int *)(iVar1 + 0x44) * 8" (pointer_expression "*(int *)(iVar1 + 0x44)" (* "*") (cast_expression "(int *)(iVar1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x44)" (( "(") (binary_expression "iVar1 + 0x44" (identifier "iVar1") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)(uVar5 & 1)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(uVar5 & 1)" (( "(") (binary_expression "uVar5 & 1" (identifier "uVar5") (& "&") (number_literal "1")) () ")")))) (; ";")) (} "}"))))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 == 8) {\n                  iVar4 = 0;\n                }" (if "if") (parenthesized_expression "(iVar4 == 8)" (( "(") (binary_expression "iVar4 == 8" (identifier "iVar4") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  iVar4 = 0;\n                }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 1" (identifier "uVar5") (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" (identifier "local_38") (= "=") (binary_expression "local_38 + 1" (identifier "local_38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;" (assignment_expression "local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8" (identifier "local_34") (= "=") (binary_expression "local_34 + *(int *)(iVar3 + 0x298) * 8" (identifier "local_34") (+ "+") (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 "(local_38 < *(int *)(iVar3 + 0x18))" (( "(") (binary_expression "local_38 < *(int *)(iVar3 + 0x18)" (identifier "local_38") (< "<") (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) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;" (if "if") (parenthesized_expression "((iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0))" (( "(") (binary_expression "(iVar4 == 0) ||\n               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)" (( "(") (comma_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0" (assignment_expression "iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" (identifier "iVar4") (= "=") (call_expression "SetImageProgress(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" (identifier "SetImageProgress") (argument_list "(iVar3,"Load/Image",local_2c,local_28,\n                                         *(undefined4 *)(iVar3 + 0x1c),0)" (( "(") (identifier "iVar3") (, ",") (string_literal ""Load/Image"" (" """) (string_content "Load/Image") (" """)) (, ",") (identifier "local_2c") (, ",") (identifier "local_28") (, ",") (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")) () ")")))) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" (identifier "local_30") (= "=") (binary_expression "local_30 + 1" (identifier "local_30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar8 = 0xfffffffe < local_2c;" (assignment_expression "bVar8 = 0xfffffffe < local_2c" (identifier "bVar8") (= "=") (binary_expression "0xfffffffe < local_2c" (number_literal "0xfffffffe") (< "<") (identifier "local_2c"))) (; ";")) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" (identifier "local_2c") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_28 = local_28 + (uint)bVar8;" (assignment_expression "local_28 = local_28 + (uint)bVar8" (identifier "local_28") (= "=") (binary_expression "local_28 + (uint)bVar8" (identifier "local_28") (+ "+") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8")))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x1c) <= local_30) break;" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x1c) <= local_30)" (( "(") (binary_expression "*(int *)(iVar3 + 0x1c) <= local_30" (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")) () ")")))) (<= "<=") (identifier "local_30")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (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          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar6 = __errno_location();\n          uVar7 = GetExceptionMessage(*piVar6);\n          ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);\n          DestroyString(uVar7);\n        }" ({ "{") (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = GetExceptionMessage(*piVar6);" (assignment_expression "uVar7 = GetExceptionMessage(*piVar6)" (identifier "uVar7") (= "=") (call_expression "GetExceptionMessage(*piVar6)" (identifier "GetExceptionMessage") (argument_list "(*piVar6)" (( "(") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) () ")")))) (; ";")) (expression_statement "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7);" (call_expression "ThrowMagickException\n                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",\n                     "\'%s\': %s",iVar3 + 0x318,uVar7)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) (, ",") (number_literal "0xbf") (, ",") (number_literal "0x1a9") (, ",") (string_literal ""UnexpectedEndOfFile"" (" """) (string_content "UnexpectedEndOfFile") (" """)) (, ",") (string_literal ""\'%s\': %s"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content ": %s") (" """)) (, ",") (binary_expression "iVar3 + 0x318" (identifier "iVar3") (+ "+") (number_literal "0x318")) (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "DestroyString(uVar7);" (call_expression "DestroyString(uVar7)" (identifier "DestroyString") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "CloseBlob(iVar3);" (call_expression "CloseBlob(iVar3)" (identifier "CloseBlob") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "uVar7 = GetFirstImageInList(iVar3);" (assignment_expression "uVar7 = GetFirstImageInList(iVar3)" (identifier "uVar7") (= "=") (call_expression "GetFirstImageInList(iVar3)" (identifier "GetFirstImageInList") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (} "}")))) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}"))) (expression_statement "pcVar10 = "MustSpecifyImageSize";" (assignment_expression "pcVar10 = "MustSpecifyImageSize"" (identifier "pcVar10") (= "=") (string_literal ""MustSpecifyImageSize"" (" """) (string_content "MustSpecifyImageSize") (" """))) (; ";")) (expression_statement "uVar9 = 0x19a;" (assignment_expression "uVar9 = 0x19a" (identifier "uVar9") (= "=") (number_literal "0x19a")) (; ";")) (expression_statement "uVar7 = 0x85;" (assignment_expression "uVar7 = 0x85" (identifier "uVar7") (= "=") (number_literal "0x85")) (; ";")) (labeled_statement "LAB_00222842:\n  ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" (statement_identifier "LAB_00222842") (: ":") (expression_statement "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);" (call_expression "ThrowMagickException\n            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/mono.c"" (" """) (string_content "coders/mono.c") (" """)) (, ",") (string_literal ""ReadMONOImage"" (" """) (string_content "ReadMONOImage") (" """)) (, ",") (identifier "uVar7") (, ",") (identifier "uVar9") (, ",") (identifier "pcVar10") (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (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: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* 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 "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 * function_1(type_2 *var_1,type_3 *var_5)

{
  type_4 *pPVar1;
  type_5 QVar2;
  type_1 *pIVar3;
  type_6 var_8;
  type_7 var_22;
  int *piVar6;
  char *pcVar7;
  int var_19;
  bool bVar9;
  size_t line;
  type_8 severity;
  int var_24;
  type_5 *var_18;
  int var_28;
  type_7 var_29;
  int var_30;
  
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");
  }
  if (var_1->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_2("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,
                  "ReadMONOImage");
  }
  if (var_1->debug != var_3) {
    var_4(TraceEvent,"coders/mono.c","ReadMONOImage",0x7f,"%s",var_1->filename);
  }
  if (var_5 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");
  }
  if (var_5->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_2("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"
                 );
  }
  pIVar3 = var_6(var_1,var_5);
  if ((pIVar3->columns != 0) && (pIVar3->rows != 0)) {
    var_8 = var_7(var_1,pIVar3,ReadBinaryBlobMode,var_5);
    if (var_8 == var_3) {
      var_9(pIVar3);
      pIVar3 = (type_1 *)0x0;
    }
    else {
      var_8 = var_10(pIVar3,(type_9)pIVar3->offset);
      if (var_8 == var_3) {
        piVar6 = var_11();
        pcVar7 = var_12(*piVar6);
        var_13
                  (var_5,"coders/mono.c","ReadMONOImage",0x8e,CorruptImageError,
                   "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);
        var_14(pcVar7);
      }
      pIVar3->depth = 1;
      var_8 = var_15(pIVar3,2,var_5);
      if (var_8 == var_3) {
        pcVar7 = "MemoryAllocationFailed";
        severity = ErrorException;
        line = 0x94;
        goto LAB_00222842;
      }
      if (var_1->ping == var_3) {
        var_8 = var_16(pIVar3,pIVar3->columns,pIVar3->rows,var_5);
        if (var_8 == var_3) {
          pIVar3 = var_9(pIVar3);
          return pIVar3;
        }
        var_29 = 0;
        var_30 = 0;
        var_28 = 0;
        if (0 < (int)pIVar3->rows) {
          while (var_18 = var_17(pIVar3,0,var_28,pIVar3->columns,1,var_5),
                var_18 != (type_5 *)0x0) {
            if (0 < (int)pIVar3->columns) {
              var_22 = 0;
              var_19 = 0;
              var_24 = 0;
              do {
                if (var_19 == 0) {
                  var_22 = var_20(pIVar3);
                }
                pPVar1 = pIVar3->channel_map;
                if (var_1->endian == var_21) {
                  if ((var_22 & 1) == 0) {
                    QVar2 = 1.0;
                  }
                  else {
                    QVar2 = 0.0;
                  }
                  if (pPVar1[5].traits != var_23) {
                    var_18[pPVar1[5].offset] = QVar2;
                  }
                }
                else if (pPVar1[5].traits != var_23) {
                  var_18[pPVar1[5].offset] = (double)(var_22 & 1);
                }
                var_19 = var_19 + 1;
                if (var_19 == 8) {
                  var_19 = 0;
                }
                var_22 = var_22 >> 1;
                var_24 = var_24 + 1;
                var_18 = var_18 + pIVar3->number_channels;
              } while (var_24 < (int)pIVar3->columns);
            }
            var_8 = var_25(pIVar3,var_5);
            if ((var_8 == var_3) ||
               (var_8 = var_26(pIVar3,"Load/Image",var_27(var_30,var_29),
                                         (type_10)pIVar3->rows), var_8 == var_3)) break;
            var_28 = var_28 + 1;
            bVar9 = 0xfffffffe < var_29;
            var_29 = var_29 + 1;
            var_30 = var_30 + (type_7)bVar9;
            if ((int)pIVar3->rows <= var_28) break;
          }
        }
        var_31(pIVar3,var_5);
        var_19 = var_32(pIVar3);
        if (var_19 != 0) {
          piVar6 = var_11();
          pcVar7 = var_12(*piVar6);
          var_13
                    (var_5,"coders/mono.c","ReadMONOImage",0xbf,CorruptImageError,
                     "UnexpectedEndOfFile","\'%s\': %s",pIVar3->filename,pcVar7);
          var_14(pcVar7);
        }
      }
      var_33(pIVar3);
      pIVar3 = var_34(pIVar3);
    }
    return pIVar3;
  }
  pcVar7 = "MustSpecifyImageSize";
  severity = OptionError;
  line = 0x85;
LAB_00222842:
  var_13
            (var_5,"coders/mono.c","ReadMONOImage",line,severity,pcVar7,"`%s\'",
             var_1->filename);
  var_33(pIVar3);
  var_9(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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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 (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (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: (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)))) (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) (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))))) (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)))))) (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) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence) (string_content)) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (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: (number_literal))) (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 (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (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: (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 (while_statement condition: (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_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: (identifier) 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: (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 (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: (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: (identifier) 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: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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: (identifier))) consequence: (break_statement)))))) (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) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence) (string_content)) (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: (string_literal (string_content)))) (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) (string_literal (string_content)) (string_literal (string_content)) (identifier) (identifier) (identifier) (string_literal (string_content) (escape_sequence)) (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)))))

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

undefined4 MASKED(int param_1,int param_2)

{
  int iVar1;
  undefined8 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  int *piVar6;
  undefined4 uVar7;
  bool bVar8;
  undefined4 uVar9;
  char *pcVar10;
  int local_38;
  int local_34;
  int local_30;
  uint local_2c;
  int local_28;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/mono.c",0x7c,"ReadMONOImage");
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/mono.c",0x7d,
                  "ReadMONOImage");
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,"coders/mono.c","ReadMONOImage",0x7f,&DAT_002b6e4e,param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/mono.c",0x81,"ReadMONOImage");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/mono.c",0x82,"ReadMONOImage"
                 );
  }
  iVar3 = AcquireImage(param_1,param_2);
  if ((*(int *)(iVar3 + 0x18) != 0) && (*(int *)(iVar3 + 0x1c) != 0)) {
    iVar4 = OpenBlob(param_1,iVar3,2,param_2);
    if (iVar4 == 0) {
      DestroyImageList(iVar3);
      uVar7 = 0;
    }
    else {
      iVar4 = DiscardBlobBytes(iVar3,*(int *)(iVar3 + 0x1ec),*(int *)(iVar3 + 0x1ec) >> 0x1f);
      if (iVar4 == 0) {
        piVar6 = __errno_location();
        uVar7 = GetExceptionMessage(*piVar6);
        ThrowMagickException
                  (param_2,"coders/mono.c","ReadMONOImage",0x8e,0x1a9,"UnexpectedEndOfFile",
                   "\'%s\': %s",iVar3 + 0x318,uVar7);
        DestroyString(uVar7);
      }
      *(undefined4 *)(iVar3 + 0x20) = 1;
      iVar4 = AcquireImageColormap(iVar3,2,param_2);
      if (iVar4 == 0) {
        pcVar10 = "MemoryAllocationFailed";
        uVar9 = 400;
        uVar7 = 0x94;
        goto LAB_00222842;
      }
      if (*(int *)(param_1 + 0x1bc) == 0) {
        iVar4 = SetImageExtent(iVar3,*(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c),
                               param_2);
        if (iVar4 == 0) {
          uVar7 = DestroyImageList(iVar3);
          return uVar7;
        }
        local_2c = 0;
        local_28 = 0;
        local_30 = 0;
        if (0 < *(int *)(iVar3 + 0x1c)) {
          while (local_34 = QueueAuthenticPixels
                                      (iVar3,0,local_30,*(undefined4 *)(iVar3 + 0x18),1,param_2),
                local_34 != 0) {
            if (0 < *(int *)(iVar3 + 0x18)) {
              uVar5 = 0;
              iVar4 = 0;
              local_38 = 0;
              do {
                if (iVar4 == 0) {
                  uVar5 = ReadBlobByte(iVar3);
                }
                iVar1 = *(int *)(iVar3 + 0x2a8);
                if (*(int *)(param_1 + 0x38) == 1) {
                  if ((uVar5 & 1) == 0) {
                    uVar2 = 0x3ff0000000000000;
                  }
                  else {
                    uVar2 = 0;
                  }
                  if (*(int *)(iVar1 + 0x40) != 0) {
                    *(undefined8 *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = uVar2;
                  }
                }
                else if (*(int *)(iVar1 + 0x40) != 0) {
                  *(double *)(local_34 + *(int *)(iVar1 + 0x44) * 8) = (double)(uVar5 & 1);
                }
                iVar4 = iVar4 + 1;
                if (iVar4 == 8) {
                  iVar4 = 0;
                }
                uVar5 = uVar5 >> 1;
                local_38 = local_38 + 1;
                local_34 = local_34 + *(int *)(iVar3 + 0x298) * 8;
              } while (local_38 < *(int *)(iVar3 + 0x18));
            }
            iVar4 = SyncAuthenticPixels(iVar3,param_2);
            if ((iVar4 == 0) ||
               (iVar4 = SetImageProgress(iVar3,"Load/Image",local_2c,local_28,
                                         *(undefined4 *)(iVar3 + 0x1c),0), iVar4 == 0)) break;
            local_30 = local_30 + 1;
            bVar8 = 0xfffffffe < local_2c;
            local_2c = local_2c + 1;
            local_28 = local_28 + (uint)bVar8;
            if (*(int *)(iVar3 + 0x1c) <= local_30) break;
          }
        }
        SyncImage(iVar3,param_2);
        iVar4 = EOFBlob(iVar3);
        if (iVar4 != 0) {
          piVar6 = __errno_location();
          uVar7 = GetExceptionMessage(*piVar6);
          ThrowMagickException
                    (param_2,"coders/mono.c","ReadMONOImage",0xbf,0x1a9,"UnexpectedEndOfFile",
                     "\'%s\': %s",iVar3 + 0x318,uVar7);
          DestroyString(uVar7);
        }
      }
      CloseBlob(iVar3);
      uVar7 = GetFirstImageInList(iVar3);
    }
    return uVar7;
  }
  pcVar10 = "MustSpecifyImageSize";
  uVar9 = 0x19a;
  uVar7 = 0x85;
LAB_00222842:
  ThrowMagickException
            (param_2,"coders/mono.c","ReadMONOImage",uVar7,uVar9,pcVar10,"`%s\'",param_1 + 0x21f0);
  CloseBlob(iVar3);
  DestroyImageList(iVar3);
  return 0;
}

