
/* 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 "PolicyRights": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType WriteImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)

{
  char *source;
  char *destination;
  char *name;
  long lVar1;
  MagickBooleanType MVar2;
  MagickBooleanType MVar3;
  int iVar4;
  MagickBooleanType MVar5;
  ExceptionInfo *pEVar6;
  ImageInfo *image_info_00;
  MagickInfo *magick_info;
  char *pcVar7;
  EncodeImageHandler *pEVar8;
  ssize_t sVar9;
  DelegateInfo *pDVar10;
  Image *pIVar11;
  long in_FS_OFFSET;
  MagickInfo *local_2050;
  char filename [4096];
  char image_filename [4096];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,
                  "WriteImage");
  }
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename
                  );
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,
                  "WriteImage");
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"
                 );
  }
  pEVar6 = AcquireExceptionInfo();
  image_info_00 = CloneImageInfo(image_info);
  source = image->filename;
  destination = image_info_00->filename;
  CopyMagickString(destination,source,0x1000);
  SetImageInfo(image_info_00,1,pEVar6);
  if (image_info_00->magick[0] == '\0') {
    CopyMagickString(image_info_00->magick,image->magick,0x1000);
  }
  CopyMagickString(filename,source,0x1000);
  CopyMagickString(source,destination,0x1000);
  name = image_info_00->magick;
  magick_info = GetMagickInfo(name,pEVar6);
  if (pEVar6->severity == PolicyError) {
    magick_info = GetMagickInfo(name,exception);
  }
  DestroyExceptionInfo(pEVar6);
  if (magick_info == (MagickInfo *)0x0) {
    SyncImageProfiles(image);
    DisassociateImageStream(image);
    pcVar7 = GetImageOption(image_info,"delegate:bimodal");
    MVar2 = IsStringTrue(pcVar7);
    if (MVar2 == MagickFalse) {
      MVar5 = MagickFalse;
      MVar2 = MagickFalse;
    }
    else {
      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;
      MVar5 = MagickFalse;
      MVar2 = MagickFalse;
    }
  }
  else {
    MVar2 = GetMagickEndianSupport(magick_info);
    if (MVar2 == MagickFalse) {
      image->endian = UndefinedEndian;
    }
    else if ((image_info->endian == UndefinedEndian) &&
            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {
      image->endian = LSBEndian;
    }
    SyncImageProfiles(image);
    DisassociateImageStream(image);
    pcVar7 = GetImageOption(image_info,"delegate:bimodal");
    MVar2 = IsStringTrue(pcVar7);
    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {
LAB_00196dd4:
      pIVar11 = GetPreviousImageInList(image);
      if ((pIVar11 == (Image *)0x0) &&
         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&
          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {
        pDVar10 = GetDelegateInfo(image->magick,name,exception);
        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {
          MVar2 = IsPathAccessible(image->magick_filename);
          if (MVar2 != MagickFalse) {
            CopyMagickString(source,image->magick_filename,0x1000);
            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);
            DestroyImageInfo(image_info_00);
            CopyMagickString(source,filename,0x1000);
            goto LAB_00196730;
          }
        }
      }
      if (magick_info == (MagickInfo *)0x0) {
        MVar5 = MagickFalse;
        MVar2 = MagickFalse;
        goto LAB_00196685;
      }
    }
    MVar2 = GetMagickEncoderSeekableStream(magick_info);
    MVar5 = MVar2;
    if (MVar2 != MagickFalse) {
      CopyMagickString(image_filename,source,0x1000);
      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
      CopyMagickString(source,image_filename,0x1000);
      MVar5 = MVar2;
      if (MVar2 != MagickFalse) {
        MVar5 = IsBlobSeekable(image);
        if (MVar5 == MagickFalse) {
          image_info_00->adjoin = MagickTrue;
          CopyMagickString(destination,source,0x1000);
          AcquireUniqueFilename(source);
        }
        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);
        CloseBlob(image);
      }
    }
  }
LAB_00196685:
  pEVar8 = GetImageEncoder(magick_info);
  if (pEVar8 == (EncodeImageHandler *)0x0) {
    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);
    if (pDVar10 == (DelegateInfo *)0x0) {
      pEVar6 = AcquireExceptionInfo();
      local_2050 = GetMagickInfo(name,pEVar6);
      if (pEVar6->severity == PolicyError) {
        local_2050 = GetMagickInfo(name,exception);
      }
      DestroyExceptionInfo(pEVar6);
      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {
        CopyMagickString(name,image->magick,0x1000);
        local_2050 = GetMagickInfo(name,exception);
      }
      pEVar8 = GetImageEncoder(local_2050);
      if (pEVar8 == (EncodeImageHandler *)0x0) {
        GetPathComponent(source,ExtensionPath,image_filename);
        if (image_filename[0] == '\0') {
          local_2050 = GetMagickInfo(image->magick,exception);
        }
        else {
          local_2050 = GetMagickInfo(image_filename,exception);
        }
        CopyMagickString(source,filename,0x1000);
        pEVar8 = GetImageEncoder(local_2050);
        if (pEVar8 == (EncodeImageHandler *)0x0) {
          local_2050 = GetMagickInfo(image->magick,exception);
          pEVar8 = GetImageEncoder(local_2050);
          if (pEVar8 == (EncodeImageHandler *)0x0) {
            ThrowMagickException
                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,
                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);
            goto LAB_001966eb;
          }
        }
      }
      MVar2 = GetMagickEncoderThreadSupport(local_2050);
      if (MVar2 == MagickFalse) {
        LockSemaphoreInfo(local_2050->semaphore);
      }
      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);
      if (MVar2 != MagickFalse) {
        MVar2 = (*pEVar8)(image_info_00,image,exception);
      }
      MVar3 = GetMagickEncoderThreadSupport(local_2050);
      if (MVar3 == MagickFalse) {
        UnlockSemaphoreInfo(local_2050->semaphore);
      }
    }
    else {
      image_info_00->filename[0] = '\0';
      MVar2 = GetDelegateThreadSupport(pDVar10);
      if (MVar2 == MagickFalse) {
        LockSemaphoreInfo(pDVar10->semaphore);
      }
      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);
      MVar3 = GetDelegateThreadSupport(pDVar10);
      if (MVar3 == MagickFalse) {
        UnlockSemaphoreInfo(pDVar10->semaphore);
      }
      CopyMagickString(source,filename,0x1000);
    }
  }
  else {
    MVar2 = GetMagickEncoderThreadSupport(magick_info);
    if (MVar2 == MagickFalse) {
      LockSemaphoreInfo(magick_info->semaphore);
    }
    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);
    if (MVar2 != MagickFalse) {
      MVar2 = (*pEVar8)(image_info_00,image,exception);
    }
    MVar3 = GetMagickEncoderThreadSupport(magick_info);
    if (MVar3 == MagickFalse) {
      UnlockSemaphoreInfo(magick_info->semaphore);
    }
  }
LAB_001966eb:
  if (MVar5 != MagickFalse) {
    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);
    if (MVar2 != MagickFalse) {
      RelinquishUniqueFileResource(destination);
      MVar2 = ImageToFile(image,destination,exception);
    }
    CloseBlob(image);
    RelinquishUniqueFileResource(source);
    CopyMagickString(source,destination,0x1000);
  }
  iVar4 = LocaleCompare(name,"info");
  if ((iVar4 != 0) && (image_info_00->verbose != MagickFalse)) {
    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);
  }
  DestroyImageInfo(image_info_00);
  MVar5 = GetBlobError(image);
  if (MVar5 != MagickFalse) {
    ThrowMagickException
              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,
               "UnableToWriteFile","`%s\'",source);
    pIVar11 = image;
    if (image_info->adjoin != MagickFalse) {
      do {
        image = pIVar11;
        pIVar11 = image->previous;
      } while (image->previous != (_Image *)0x0);
    }
    CloseBlob(image);
    MVar2 = MagickFalse;
  }
LAB_00196730:
  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return MVar2;
}



uint WriteImage(long param_1,long param_2,long param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  long lVar8;
  long lVar9;
  undefined8 uVar10;
  code *pcVar11;
  long lVar12;
  long in_FS_OFFSET;
  long local_2050;
  undefined1 local_2048 [4096];
  char local_1048 [4104];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");
  }
  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,
                  "WriteImage");
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");
  }
  if (*(int *)(param_2 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,
                   param_1 + 0x2270);
  }
  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,
                  "WriteImage");
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"
                 );
  }
  piVar7 = (int *)AcquireExceptionInfo();
  lVar8 = CloneImageInfo(param_1);
  lVar1 = param_2 + 0x3f8;
  lVar2 = lVar8 + 0x2270;
  CopyMagickString(lVar2,lVar1,0x1000);
  SetImageInfo(lVar8,1,piVar7);
  if (*(char *)(lVar8 + 0x270) == '\0') {
    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);
  }
  CopyMagickString(local_2048,lVar1,0x1000);
  CopyMagickString(lVar1,lVar2,0x1000);
  lVar3 = lVar8 + 0x270;
  lVar9 = GetMagickInfo(lVar3,piVar7);
  if (*piVar7 == 499) {
    lVar9 = GetMagickInfo(lVar3,param_3);
  }
  DestroyExceptionInfo(piVar7);
  if (lVar9 == 0) {
    FUN_00267330(param_2);
    DisassociateImageStream(param_2);
    uVar10 = GetImageOption(param_1,"delegate:bimodal");
    iVar5 = IsStringTrue(uVar10);
    if (iVar5 == 0) {
      uVar4 = 0;
      uVar6 = 0;
    }
    else {
      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;
      uVar4 = 0;
      uVar6 = 0;
    }
  }
  else {
    iVar5 = GetMagickEndianSupport(lVar9);
    if (iVar5 == 0) {
      *(undefined4 *)(param_2 + 0x2ac) = 0;
    }
    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {
      *(undefined4 *)(param_2 + 0x2ac) = 1;
    }
    FUN_00267330(param_2);
    DisassociateImageStream(param_2);
    uVar10 = GetImageOption(param_1,"delegate:bimodal");
    iVar5 = IsStringTrue(uVar10);
    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {
LAB_00196dd4:
      lVar12 = GetPreviousImageInList(param_2);
      if ((lVar12 == 0) &&
         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&
          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {
        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);
        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {
          iVar5 = IsPathAccessible(param_2 + 0x13f8);
          if (iVar5 != 0) {
            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);
            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);
            DestroyImageInfo(lVar8);
            CopyMagickString(lVar1,local_2048,0x1000);
            goto LAB_00196730;
          }
        }
      }
      if (lVar9 == 0) {
        uVar4 = 0;
        uVar6 = 0;
        goto LAB_00196685;
      }
    }
    uVar6 = GetMagickEncoderSeekableStream(lVar9);
    uVar4 = uVar6;
    if (uVar6 != 0) {
      CopyMagickString(local_1048,lVar1,0x1000);
      uVar6 = OpenBlob(param_1,param_2,4,param_3);
      CopyMagickString(lVar1,local_1048,0x1000);
      uVar4 = uVar6;
      if (uVar6 != 0) {
        iVar5 = IsBlobSeekable(param_2);
        if (iVar5 == 0) {
          *(undefined4 *)(lVar8 + 0xc) = 1;
          CopyMagickString(lVar2,lVar1,0x1000);
          AcquireUniqueFilename(lVar1);
        }
        uVar4 = (uint)(iVar5 == 0);
        CloseBlob(param_2);
      }
    }
  }
LAB_00196685:
  pcVar11 = (code *)GetImageEncoder(lVar9);
  if (pcVar11 == (code *)0x0) {
    lVar9 = GetDelegateInfo(0,lVar3,param_3);
    if (lVar9 == 0) {
      piVar7 = (int *)AcquireExceptionInfo();
      local_2050 = GetMagickInfo(lVar3,piVar7);
      if (*piVar7 == 499) {
        local_2050 = GetMagickInfo(lVar3,param_3);
      }
      DestroyExceptionInfo(piVar7);
      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {
        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);
        local_2050 = GetMagickInfo(lVar3,param_3);
      }
      pcVar11 = (code *)GetImageEncoder(local_2050);
      if (pcVar11 == (code *)0x0) {
        GetPathComponent(lVar1,6,local_1048);
        if (local_1048[0] == '\0') {
          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);
        }
        else {
          local_2050 = GetMagickInfo(local_1048,param_3);
        }
        CopyMagickString(lVar1,local_2048,0x1000);
        pcVar11 = (code *)GetImageEncoder(local_2050);
        if (pcVar11 == (code *)0x0) {
          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);
          pcVar11 = (code *)GetImageEncoder(local_2050);
          if (pcVar11 == (code *)0x0) {
            ThrowMagickException
                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,
                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);
            goto LAB_001966eb;
          }
        }
      }
      iVar5 = GetMagickEncoderThreadSupport(local_2050);
      if (iVar5 == 0) {
        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));
      }
      uVar6 = FUN_001947f4(lVar3,2,param_3);
      if (uVar6 != 0) {
        uVar6 = (*pcVar11)(lVar8,param_2,param_3);
      }
      iVar5 = GetMagickEncoderThreadSupport(local_2050);
      if (iVar5 == 0) {
        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));
      }
    }
    else {
      *(undefined1 *)(lVar8 + 0x2270) = 0;
      iVar5 = GetDelegateThreadSupport(lVar9);
      if (iVar5 == 0) {
        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));
      }
      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);
      iVar5 = GetDelegateThreadSupport(lVar9);
      if (iVar5 == 0) {
        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));
      }
      CopyMagickString(lVar1,local_2048,0x1000);
    }
  }
  else {
    iVar5 = GetMagickEncoderThreadSupport(lVar9);
    if (iVar5 == 0) {
      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));
    }
    uVar6 = FUN_001947f4(lVar3,2,param_3);
    if (uVar6 != 0) {
      uVar6 = (*pcVar11)(lVar8,param_2,param_3);
    }
    iVar5 = GetMagickEncoderThreadSupport(lVar9);
    if (iVar5 == 0) {
      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));
    }
  }
LAB_001966eb:
  if (uVar4 != 0) {
    uVar6 = OpenBlob(lVar8,param_2,2,param_3);
    if (uVar6 != 0) {
      RelinquishUniqueFileResource(lVar2);
      uVar6 = ImageToFile(param_2,lVar2,param_3);
    }
    CloseBlob(param_2);
    RelinquishUniqueFileResource(lVar1);
    CopyMagickString(lVar1,lVar2,0x1000);
  }
  iVar5 = LocaleCompare(lVar3,"info");
  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {
    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);
  }
  DestroyImageInfo(lVar8);
  iVar5 = GetBlobError(param_2);
  if (iVar5 != 0) {
    ThrowMagickException
              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",
               "`%s\'",lVar1);
    lVar1 = param_2;
    if (*(int *)(param_1 + 0xc) != 0) {
      do {
        param_2 = lVar1;
        lVar1 = *(long *)(param_2 + 0x3440);
      } while (*(long *)(param_2 + 0x3440) != 0);
    }
    CloseBlob(param_2);
    uVar6 = 0;
  }
LAB_00196730:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar6;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x2048
MOV qword ptr [RSP + 0x8],RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x2038],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x0019675c
MOV R14,RDI
MOV RBX,RSI
MOV EAX,0xabacadab
CMP qword ptr [RDI + 0x3278],RAX
JNZ 0x0019677b
TEST RSI,RSI
JZ 0x0019679a
CMP dword ptr [RSI + 0x3418],0x0
JNZ 0x001967b9
MOV EAX,0xabacadab
CMP qword ptr [RBX + 0x3450],RAX
JNZ 0x001967ee
CMP qword ptr [RSP + 0x8],0x0
JZ 0x0019680d
CALL 0x0014ccb0
MOV R12,RAX
MOV RDI,R14
CALL 0x0014bf60
MOV RBP,RAX
LEA R15,[RBX + 0x3f8]
LEA RAX,[RAX + 0x2270]
MOV qword ptr [RSP + 0x18],RAX
MOV EDX,0x1000
MOV RSI,R15
MOV RDI,RAX
CALL 0x0014a0b0
MOV RDX,R12
MOV ESI,0x1
MOV RDI,RBP
CALL 0x0014ac10
CMP byte ptr [RBP + 0x270],0x0
JZ 0x0019682c
LEA RDI,[RSP + 0x30]
MOV EDX,0x1000
MOV RSI,R15
CALL 0x0014a0b0
MOV EDX,0x1000
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014a0b0
LEA RAX,[RBP + 0x270]
MOV qword ptr [RSP + 0x10],RAX
MOV RSI,R12
MOV RDI,RAX
CALL 0x0014b3c0
MOV R13,RAX
CMP dword ptr [R12],0x1f3
JZ 0x00196849
MOV RDI,R12
CALL 0x0014d490
TEST R13,R13
JZ 0x00196d78
MOV RDI,R13
CALL 0x00149fc0
TEST EAX,EAX
JNZ 0x00196860
MOV dword ptr [RBX + 0x2ac],0x0
MOV RDI,RBX
CALL 0x00267330
MOV RDI,RBX
CALL 0x0014bad0
LEA RSI,[0x4099b2]
MOV RDI,R14
CALL 0x0014c0a0
MOV RDI,RAX
CALL 0x0014d300
TEST EAX,EAX
JNZ 0x00196dc9
MOV RDI,R13
CALL 0x0014ba10
MOV R12D,EAX
MOV dword ptr [RSP + 0x20],EAX
TEST EAX,EAX
JNZ 0x00196946
MOV RDI,R13
CALL 0x0014a0c0
MOV qword ptr [RSP + 0x28],RAX
TEST RAX,RAX
JZ 0x00196a03
MOV RDI,R13
CALL 0x0014ac60
TEST EAX,EAX
JZ 0x001969e7
MOV RDX,qword ptr [RSP + 0x8]
MOV ESI,0x2
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x001947f4
MOV R12D,EAX
TEST EAX,EAX
JZ 0x001966db
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,RBX
MOV RDI,RBP
MOV RAX,qword ptr [RSP + 0x28]
CALL RAX
MOV R12D,EAX
MOV RDI,R13
CALL 0x0014ac60
TEST EAX,EAX
JZ 0x001969f5
CMP dword ptr [RSP + 0x20],0x0
JNZ 0x00196c8a
LEA RSI,[0x438832]
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0014c220
TEST EAX,EAX
JZ 0x00196718
CMP dword ptr [RBP + 0x218],0x0
JNZ 0x00196cef
MOV RDI,RBP
CALL 0x0014abc0
MOV RDI,RBX
CALL 0x0014bc10
TEST EAX,EAX
JNZ 0x00196d10
MOV EAX,R12D
MOV RCX,qword ptr [RSP + 0x2038]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00196e01
ADD RSP,0x2048
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RCX,[0x409b88]
MOV EDX,0x446
LEA RSI,[0x409878]
LEA RDI,[0x3fa720]
CALL 0x0014a360
LEA RCX,[0x409b88]
MOV EDX,0x447
LEA RSI,[0x409878]
LEA RDI,[0x3f8d18]
CALL 0x0014a360
LEA RCX,[0x409b88]
MOV EDX,0x448
LEA RSI,[0x409878]
LEA RDI,[0x420571]
CALL 0x0014a360
LEA R9,[RDI + 0x2270]
LEA R8,[0x41fe36]
MOV ECX,0x44a
LEA RDX,[0x409b78]
LEA RSI,[0x409878]
MOV EDI,0x8000
MOV EAX,0x0
CALL 0x0014be20
JMP 0x00196557
LEA RCX,[0x409b88]
MOV EDX,0x44c
LEA RSI,[0x409878]
LEA RDI,[0x3f98f0]
CALL 0x0014a360
LEA RCX,[0x409b88]
MOV EDX,0x44d
LEA RSI,[0x409878]
LEA RDI,[0x3fa748]
CALL 0x0014a360
LEA RSI,[RBX + 0x23f8]
LEA RDI,[RBP + 0x270]
MOV EDX,0x1000
CALL 0x0014a0b0
JMP 0x001965c8
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0014b3c0
MOV R13,RAX
JMP 0x00196614
CMP dword ptr [R14 + 0x54],0x0
JNZ 0x0019663f
MOV RDI,R13
CALL 0x0014c090
TEST EAX,EAX
JZ 0x0019663f
MOV dword ptr [RBX + 0x2ac],0x1
JMP 0x0019663f
MOV RDI,RBX
CALL 0x0014b230
TEST RAX,RAX
JNZ 0x00196de5
MOV RDI,RBX
CALL 0x0014b280
TEST EAX,EAX
JNZ 0x00196de5
LEA R12,[RBX + 0x23f8]
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R12
CALL 0x0014bab0
TEST RAX,RAX
JZ 0x00196de5
MOV RDI,RAX
CALL 0x00149bf0
TEST RAX,RAX
JNZ 0x00196de5
LEA RAX,[RBX + 0x13f8]
MOV qword ptr [RSP + 0x20],RAX
MOV RDI,RAX
CALL 0x0014d9f0
TEST EAX,EAX
JZ 0x00196de5
MOV EDX,0x1000
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,R15
CALL 0x0014a0b0
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0014a880
MOV R12D,EAX
MOV RDI,RBP
CALL 0x0014abc0
LEA RSI,[RSP + 0x30]
MOV EDX,0x1000
MOV RDI,R15
CALL 0x0014a0b0
JMP 0x00196730
LEA RAX,[RSP + 0x1030]
MOV EDX,0x1000
MOV RSI,R15
MOV qword ptr [RSP + 0x20],RAX
MOV RDI,RAX
CALL 0x0014a0b0
MOV RCX,qword ptr [RSP + 0x8]
MOV EDX,0x4
MOV RSI,RBX
MOV RDI,R14
CALL 0x0014bc60
MOV R12D,EAX
MOV EDX,0x1000
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,R15
CALL 0x0014a0b0
MOV dword ptr [RSP + 0x20],R12D
TEST R12D,R12D
JZ 0x00196685
MOV RDI,RBX
CALL 0x0014bc20
MOV dword ptr [RSP + 0x20],0x0
TEST EAX,EAX
JZ 0x001969bc
MOV RDI,RBX
CALL 0x0014a8f0
JMP 0x00196685
MOV dword ptr [RBP + 0xc],0x1
MOV EDX,0x1000
MOV RSI,R15
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x0014a0b0
MOV RDI,R15
CALL 0x0014d9a0
MOV dword ptr [RSP + 0x20],0x1
JMP 0x001969af
MOV RDI,qword ptr [R13 + 0x58]
CALL 0x0014a710
JMP 0x001966ab
MOV RDI,qword ptr [R13 + 0x58]
CALL 0x0014b660
JMP 0x001966eb
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x10]
MOV EDI,0x0
CALL 0x0014bab0
MOV R13,RAX
TEST RAX,RAX
JZ 0x00196a88
MOV byte ptr [RBP + 0x2270],0x0
MOV RDI,RAX
CALL 0x0014b0e0
TEST EAX,EAX
JZ 0x00196a72
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x10]
MOV EDX,0x0
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0014a880
MOV R12D,EAX
MOV RDI,R13
CALL 0x0014b0e0
TEST EAX,EAX
JZ 0x00196a7d
LEA RSI,[RSP + 0x30]
MOV EDX,0x1000
MOV RDI,R15
CALL 0x0014a0b0
JMP 0x001966eb
MOV RDI,qword ptr [R13 + 0x38]
CALL 0x0014a710
JMP 0x00196a32
MOV RDI,qword ptr [R13 + 0x38]
CALL 0x0014b660
JMP 0x00196a5b
CALL 0x0014ccb0
MOV R13,RAX
MOV RSI,RAX
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
CMP dword ptr [R13],0x1f3
JZ 0x00196b43
MOV RDI,R13
CALL 0x0014d490
CMP dword ptr [RBP + 0x10],0x0
JNZ 0x00196aca
CMP qword ptr [RSP + 0x28],0x0
JZ 0x00196b5c
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014a0c0
MOV R13,RAX
TEST RAX,RAX
JZ 0x00196b8c
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014ac60
TEST EAX,EAX
JZ 0x00196c77
MOV RDX,qword ptr [RSP + 0x8]
MOV ESI,0x2
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x001947f4
MOV R12D,EAX
TEST EAX,EAX
JZ 0x00196b1e
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,RBX
MOV RDI,RBP
CALL R13
MOV R12D,EAX
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014ac60
TEST EAX,EAX
JNZ 0x001966eb
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RAX + 0x58]
CALL 0x0014b660
JMP 0x001966eb
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
JMP 0x00196ab0
LEA RSI,[RBX + 0x23f8]
MOV EDX,0x1000
MOV R13,qword ptr [RSP + 0x10]
MOV RDI,R13
CALL 0x0014a0b0
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,R13
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
JMP 0x00196aca
LEA RDX,[RSP + 0x1030]
MOV ESI,0x6
MOV RDI,R15
CALL 0x0014d0a0
CMP byte ptr [RSP + 0x1030],0x0
JZ 0x00196c5c
LEA RDI,[RSP + 0x1030]
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
LEA RSI,[RSP + 0x30]
MOV EDX,0x1000
MOV RDI,R15
CALL 0x0014a0b0
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014a0c0
MOV R13,RAX
TEST RAX,RAX
JNZ 0x00196ae0
LEA RDI,[RBX + 0x23f8]
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
MOV RDI,RAX
CALL 0x0014a0c0
MOV R13,RAX
TEST RAX,RAX
JNZ 0x00196ae0
PUSH qword ptr [RSP + 0x10]
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x3fa890]
MOV R8D,0x1a4
MOV ECX,0x4e4
LEA RDX,[0x409b78]
LEA RSI,[0x409878]
MOV RDI,qword ptr [RSP + 0x18]
MOV EAX,0x0
CALL 0x0014cb70
ADD RSP,0x10
JMP 0x001966eb
LEA RDI,[RBX + 0x23f8]
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x0014b3c0
MOV qword ptr [RSP + 0x28],RAX
JMP 0x00196bc6
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RAX + 0x58]
CALL 0x0014a710
JMP 0x00196af2
MOV RCX,qword ptr [RSP + 0x8]
MOV EDX,0x2
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0014bc60
MOV R12D,EAX
TEST EAX,EAX
JNZ 0x00196ccd
MOV RDI,RBX
CALL 0x0014a8f0
MOV RDI,R15
CALL 0x0014c980
MOV EDX,0x1000
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014a0b0
JMP 0x001966f6
MOV R13,qword ptr [RSP + 0x18]
MOV RDI,R13
CALL 0x0014c980
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,R13
MOV RDI,RBX
CALL 0x0014d3f0
MOV R12D,EAX
JMP 0x00196ca6
MOV RCX,qword ptr [RSP + 0x8]
MOV EDX,0x0
MOV RAX,qword ptr [0x006dafe8]
MOV RSI,qword ptr [RAX]
MOV RDI,RBX
CALL 0x0014af20
JMP 0x00196718
PUSH R15
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x4099a0]
MOV R8D,0x1ae
MOV ECX,0x50d
LEA RDX,[0x409b78]
LEA RSI,[0x409878]
MOV RDI,qword ptr [RSP + 0x18]
MOV EAX,0x0
CALL 0x0014cb70
ADD RSP,0x10
CMP dword ptr [R14 + 0xc],0x0
JNZ 0x00196d6a
MOV RDI,RBX
CALL 0x0014a8f0
MOV R12D,0x0
JMP 0x00196730
MOV RBX,RAX
MOV RAX,qword ptr [RBX + 0x3440]
TEST RAX,RAX
JNZ 0x00196d67
JMP 0x00196d54
MOV RDI,RBX
CALL 0x00267330
MOV RDI,RBX
CALL 0x0014bad0
LEA RSI,[0x4099b2]
MOV RDI,R14
CALL 0x0014c0a0
MOV RDI,RAX
CALL 0x0014d300
MOV R12D,EAX
TEST EAX,EAX
JZ 0x00196dc0
CMP qword ptr [RBP + 0x28],0x0
JZ 0x00196dd4
MOV dword ptr [RSP + 0x20],0x0
MOV R12D,0x0
JMP 0x00196685
MOV dword ptr [RSP + 0x20],EAX
JMP 0x00196685
CMP qword ptr [RBP + 0x28],0x0
JNZ 0x0019666e
MOV RDI,RBX
CALL 0x0014d7a0
TEST RAX,RAX
JZ 0x0019688a
TEST R13,R13
JNZ 0x0019666e
MOV dword ptr [RSP + 0x20],0x0
MOV R12D,0x0
JMP 0x00196685
CALL 0x0014c5c0
(translation_unit "uint WriteImage(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar6;\n}\n\n" (function_definition "uint WriteImage(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar6;\n}" type_identifier (function_declarator "WriteImage(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar6;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_2050;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_2048 [4096];" type_identifier (array_declarator "local_2048 [4096]" identifier [ number_literal ]) ;) (declaration "char local_1048 [4104];" primitive_type (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\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 != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");" (call_expression "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" identifier (argument_list "("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" ( (string_literal ""image_info != (ImageInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" * (cast_expression "(long *)(param_1 + 0x3278)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3278)" ( (binary_expression "param_1 + 0x3278" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\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("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_2 + 0x3418) != 0" (pointer_expression "*(int *)(param_2 + 0x3418)" * (cast_expression "(int *)(param_2 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3418)" ( (binary_expression "param_2 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" identifier (argument_list "(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" ( number_literal , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" * (cast_expression "(long *)(param_2 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3450)" ( (binary_expression "param_2 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" identifier = (cast_expression "(int *)AcquireExceptionInfo()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( ))))) ;) (expression_statement "lVar8 = CloneImageInfo(param_1);" (assignment_expression "lVar8 = CloneImageInfo(param_1)" identifier = (call_expression "CloneImageInfo(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "lVar1 = param_2 + 0x3f8;" (assignment_expression "lVar1 = param_2 + 0x3f8" identifier = (binary_expression "param_2 + 0x3f8" identifier + number_literal)) ;) (expression_statement "lVar2 = lVar8 + 0x2270;" (assignment_expression "lVar2 = lVar8 + 0x2270" identifier = (binary_expression "lVar8 + 0x2270" identifier + number_literal)) ;) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" identifier (argument_list "(lVar2,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "SetImageInfo(lVar8,1,piVar7);" (call_expression "SetImageInfo(lVar8,1,piVar7)" identifier (argument_list "(lVar8,1,piVar7)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" if (parenthesized_expression "(*(char *)(lVar8 + 0x270) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x270) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x270)" * (cast_expression "(char *)(lVar8 + 0x270)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x270)" ( (binary_expression "lVar8 + 0x270" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" { (expression_statement "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" identifier (argument_list "(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" ( (binary_expression "lVar8 + 0x270" identifier + number_literal) , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "CopyMagickString(local_2048,lVar1,0x1000);" (call_expression "CopyMagickString(local_2048,lVar1,0x1000)" identifier (argument_list "(local_2048,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" identifier (argument_list "(lVar1,lVar2,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "lVar3 = lVar8 + 0x270;" (assignment_expression "lVar3 = lVar8 + 0x270" identifier = (binary_expression "lVar8 + 0x270" identifier + number_literal)) ;) (expression_statement "lVar9 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,piVar7)" identifier = (call_expression "GetMagickInfo(lVar3,piVar7)" identifier (argument_list "(lVar3,piVar7)" ( identifier , identifier )))) ;) (if_statement "if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" if (parenthesized_expression "(*piVar7 == 499)" ( (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" * identifier) == number_literal) )) (compound_statement "{\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" { (expression_statement "lVar9 = GetMagickInfo(lVar3,param_3);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (if_statement "if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }" { (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" identifier = (call_expression "GetImageOption(param_1,"delegate:bimodal")" identifier (argument_list "(param_1,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" identifier = (call_expression "IsStringTrue(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0;\n      uVar6 = 0;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" else (compound_statement "{\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" { (if_statement "if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;" if (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" ( (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" * (cast_expression "(long *)(lVar8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00196dd4;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" else (compound_statement "{\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" { (expression_statement "iVar5 = GetMagickEndianSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEndianSupport(lVar9)" identifier = (call_expression "GetMagickEndianSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" * (cast_expression "(undefined4 *)(param_2 + 0x2ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2ac)" ( (binary_expression "param_2 + 0x2ac" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" else (if_statement "if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0))" ( (binary_expression "(*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" ( (comma_expression "iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0" (assignment_expression "iVar5 = GetMagickRawSupport(lVar9)" identifier = (call_expression "GetMagickRawSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" { (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" * (cast_expression "(undefined4 *)(param_2 + 0x2ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2ac)" ( (binary_expression "param_2 + 0x2ac" identifier + number_literal) )))) = number_literal) ;) })))) (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" identifier = (call_expression "GetImageOption(param_1,"delegate:bimodal")" identifier (argument_list "(param_1,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" identifier = (call_expression "IsStringTrue(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" if (parenthesized_expression "((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0))" ( (binary_expression "(iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" ( (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" * (cast_expression "(long *)(lVar8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" { (labeled_statement "LAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);" statement_identifier : (expression_statement "lVar12 = GetPreviousImageInList(param_2);" (assignment_expression "lVar12 = GetPreviousImageInList(param_2)" identifier = (call_expression "GetPreviousImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" if (parenthesized_expression "((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))))" ( (binary_expression "(lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" ( (parenthesized_expression "(lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))" ( (comma_expression "lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (assignment_expression "lVar12 = GetNextImageInList(param_2)" identifier = (call_expression "GetNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (binary_expression "lVar12 == 0" identifier == number_literal) && (parenthesized_expression "(iVar5 = IsTaintImage(param_2), iVar5 == 0)" ( (comma_expression "iVar5 = IsTaintImage(param_2), iVar5 == 0" (assignment_expression "iVar5 = IsTaintImage(param_2)" identifier = (call_expression "IsTaintImage(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" { (expression_statement "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" identifier = (call_expression "GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" identifier (argument_list "(param_2 + 0x23f8,lVar3,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" if (parenthesized_expression "((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0))" ( (binary_expression "(lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" ( (comma_expression "lVar12 = GetDelegateMode(lVar12), lVar12 == 0" (assignment_expression "lVar12 = GetDelegateMode(lVar12)" identifier = (call_expression "GetDelegateMode(lVar12)" identifier (argument_list "(lVar12)" ( identifier )))) , (binary_expression "lVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" { (expression_statement "iVar5 = IsPathAccessible(param_2 + 0x13f8);" (assignment_expression "iVar5 = IsPathAccessible(param_2 + 0x13f8)" identifier = (call_expression "IsPathAccessible(param_2 + 0x13f8)" identifier (argument_list "(param_2 + 0x13f8)" ( (binary_expression "param_2 + 0x13f8" identifier + number_literal) )))) ;) (if_statement "if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" { (expression_statement "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);" (call_expression "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000)" identifier (argument_list "(lVar1,param_2 + 0x13f8,0x1000)" ( identifier , (binary_expression "param_2 + 0x13f8" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" identifier = (call_expression "InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" identifier (argument_list "(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" ( identifier , identifier , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" identifier (argument_list "(lVar8)" ( identifier ))) ;) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_00196730;" goto statement_identifier ;) })) })) })) (if_statement "if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00196685;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = GetMagickEncoderSeekableStream(lVar9);" (assignment_expression "uVar6 = GetMagickEncoderSeekableStream(lVar9)" identifier = (call_expression "GetMagickEncoderSeekableStream(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" { (expression_statement "CopyMagickString(local_1048,lVar1,0x1000);" (call_expression "CopyMagickString(local_1048,lVar1,0x1000)" identifier (argument_list "(local_1048,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "uVar6 = OpenBlob(param_1,param_2,4,param_3)" identifier = (call_expression "OpenBlob(param_1,param_2,4,param_3)" identifier (argument_list "(param_1,param_2,4,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "CopyMagickString(lVar1,local_1048,0x1000);" (call_expression "CopyMagickString(lVar1,local_1048,0x1000)" identifier (argument_list "(lVar1,local_1048,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" { (expression_statement "iVar5 = IsBlobSeekable(param_2);" (assignment_expression "iVar5 = IsBlobSeekable(param_2)" identifier = (call_expression "IsBlobSeekable(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" { (expression_statement "*(undefined4 *)(lVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(lVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(lVar8 + 0xc)" * (cast_expression "(undefined4 *)(lVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0xc)" ( (binary_expression "lVar8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" identifier (argument_list "(lVar2,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "AcquireUniqueFilename(lVar1);" (call_expression "AcquireUniqueFilename(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) })) (expression_statement "uVar4 = (uint)(iVar5 == 0);" (assignment_expression "uVar4 = (uint)(iVar5 == 0)" identifier = (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )))) ;) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) })) }))) (labeled_statement "LAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);" statement_identifier : (expression_statement "pcVar11 = (code *)GetImageEncoder(lVar9);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(lVar9)" identifier = (cast_expression "(code *)GetImageEncoder(lVar9)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))))) ;)) (if_statement "if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }" { (expression_statement "lVar9 = GetDelegateInfo(0,lVar3,param_3);" (assignment_expression "lVar9 = GetDelegateInfo(0,lVar3,param_3)" identifier = (call_expression "GetDelegateInfo(0,lVar3,param_3)" identifier (argument_list "(0,lVar3,param_3)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }" { (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" identifier = (cast_expression "(int *)AcquireExceptionInfo()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_2050 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,piVar7)" identifier = (call_expression "GetMagickInfo(lVar3,piVar7)" identifier (argument_list "(lVar3,piVar7)" ( identifier , identifier )))) ;) (if_statement "if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" if (parenthesized_expression "(*piVar7 == 499)" ( (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" * identifier) == number_literal) )) (compound_statement "{\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" { (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (if_statement "if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" if (parenthesized_expression "((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0))" ( (binary_expression "(*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x10) == 0)" ( (binary_expression "*(int *)(lVar8 + 0x10) == 0" (pointer_expression "*(int *)(lVar8 + 0x10)" * (cast_expression "(int *)(lVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(local_2050 == 0)" ( (binary_expression "local_2050 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" { (expression_statement "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000)" identifier (argument_list "(lVar3,param_2 + 0x23f8,0x1000)" ( identifier , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , number_literal ))) ;) (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" { (expression_statement "GetPathComponent(lVar1,6,local_1048);" (call_expression "GetPathComponent(lVar1,6,local_1048)" identifier (argument_list "(lVar1,6,local_1048)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" if (parenthesized_expression "(local_1048[0] == '\0')" ( (binary_expression "local_1048[0] == '\0'" (subscript_expression "local_1048[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }" { (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" identifier = (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" identifier (argument_list "(param_2 + 0x23f8,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier )))) ;) }) (else_clause "else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" else (compound_statement "{\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" { (expression_statement "local_2050 = GetMagickInfo(local_1048,param_3);" (assignment_expression "local_2050 = GetMagickInfo(local_1048,param_3)" identifier = (call_expression "GetMagickInfo(local_1048,param_3)" identifier (argument_list "(local_1048,param_3)" ( identifier , identifier )))) ;) }))) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" { (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" identifier = (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" identifier (argument_list "(param_2 + 0x23f8,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier )))) ;) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" { (expression_statement "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);" (call_expression "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" identifier (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , number_literal , (string_literal ""NoEncodeDelegateForThisImageFormat"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_001966eb;" goto statement_identifier ;) })) })) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" identifier (argument_list "(*(undefined8 *)(local_2050 + 0x58))" ( (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" * (cast_expression "(undefined8 *)(local_2050 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2050 + 0x58)" ( (binary_expression "local_2050 + 0x58" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" identifier = (call_expression "FUN_001947f4(lVar3,2,param_3)" identifier (argument_list "(lVar3,2,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" { (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" identifier = (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(lVar8,param_2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" identifier (argument_list "(*(undefined8 *)(local_2050 + 0x58))" ( (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" * (cast_expression "(undefined8 *)(local_2050 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2050 + 0x58)" ( (binary_expression "local_2050 + 0x58" identifier + number_literal) )))) ))) ;) })) }) (else_clause "else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" else (compound_statement "{\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" { (expression_statement "*(undefined1 *)(lVar8 + 0x2270) = 0;" (assignment_expression "*(undefined1 *)(lVar8 + 0x2270) = 0" (pointer_expression "*(undefined1 *)(lVar8 + 0x2270)" * (cast_expression "(undefined1 *)(lVar8 + 0x2270)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x2270)" ( (binary_expression "lVar8 + 0x2270" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" identifier = (call_expression "GetDelegateThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" * (cast_expression "(undefined8 *)(lVar9 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" identifier = (call_expression "InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" identifier (argument_list "(lVar8,param_2,0,lVar3,param_3)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" identifier = (call_expression "GetDelegateThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" * (cast_expression "(undefined8 *)(lVar9 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) ))) ;) })) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) }) (else_clause "else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" else (compound_statement "{\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" { (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" identifier = (call_expression "GetMagickEncoderThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x58))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" * (cast_expression "(undefined8 *)(lVar9 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x58)" ( (binary_expression "lVar9 + 0x58" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" identifier = (call_expression "FUN_001947f4(lVar3,2,param_3)" identifier (argument_list "(lVar3,2,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" { (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" identifier = (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(lVar8,param_2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" identifier = (call_expression "GetMagickEncoderThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x58))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" * (cast_expression "(undefined8 *)(lVar9 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x58)" ( (binary_expression "lVar9 + 0x58" identifier + number_literal) )))) ))) ;) })) }))) (labeled_statement "LAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" statement_identifier : (if_statement "if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" { (expression_statement "uVar6 = OpenBlob(lVar8,param_2,2,param_3);" (assignment_expression "uVar6 = OpenBlob(lVar8,param_2,2,param_3)" identifier = (call_expression "OpenBlob(lVar8,param_2,2,param_3)" identifier (argument_list "(lVar8,param_2,2,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" { (expression_statement "RelinquishUniqueFileResource(lVar2);" (call_expression "RelinquishUniqueFileResource(lVar2)" identifier (argument_list "(lVar2)" ( identifier ))) ;) (expression_statement "uVar6 = ImageToFile(param_2,lVar2,param_3);" (assignment_expression "uVar6 = ImageToFile(param_2,lVar2,param_3)" identifier = (call_expression "ImageToFile(param_2,lVar2,param_3)" identifier (argument_list "(param_2,lVar2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "RelinquishUniqueFileResource(lVar1);" (call_expression "RelinquishUniqueFileResource(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" identifier (argument_list "(lVar1,lVar2,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "iVar5 = LocaleCompare(lVar3,"info");" (assignment_expression "iVar5 = LocaleCompare(lVar3,"info")" identifier = (call_expression "LocaleCompare(lVar3,"info")" identifier (argument_list "(lVar3,"info")" ( identifier , (string_literal ""info"" " string_content ") )))) ;) (if_statement "if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" if (parenthesized_expression "((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0))" ( (binary_expression "(iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(lVar8 + 0x218) != 0)" ( (binary_expression "*(int *)(lVar8 + 0x218) != 0" (pointer_expression "*(int *)(lVar8 + 0x218)" * (cast_expression "(int *)(lVar8 + 0x218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x218)" ( (binary_expression "lVar8 + 0x218" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" { (expression_statement "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);" (call_expression "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" identifier (argument_list "(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" ( identifier , (pointer_expression "*(undefined8 *)PTR_stdout_006dafe8" * (cast_expression "(undefined8 *)PTR_stdout_006dafe8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier ))) ;) })) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" identifier (argument_list "(lVar8)" ( identifier ))) ;) (expression_statement "iVar5 = GetBlobError(param_2);" (assignment_expression "iVar5 = GetBlobError(param_2)" identifier = (call_expression "GetBlobError(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" { (expression_statement "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);" (call_expression "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" identifier (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnableToWriteFile"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "lVar1 = param_2;" (assignment_expression "lVar1 = param_2" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" { (do_statement "do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);" do (compound_statement "{\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      }" { (expression_statement "param_2 = lVar1;" (assignment_expression "param_2 = lVar1" identifier = identifier) ;) (expression_statement "lVar1 = *(long *)(param_2 + 0x3440);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x3440)" identifier = (pointer_expression "*(long *)(param_2 + 0x3440)" * (cast_expression "(long *)(param_2 + 0x3440)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3440)" ( (binary_expression "param_2 + 0x3440" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(param_2 + 0x3440) != 0)" ( (binary_expression "*(long *)(param_2 + 0x3440) != 0" (pointer_expression "*(long *)(param_2 + 0x3440)" * (cast_expression "(long *)(param_2 + 0x3440)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3440)" ( (binary_expression "param_2 + 0x3440" identifier + number_literal) )))) != number_literal) )) ;) })) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "/* 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 "PolicyRights": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType WriteImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  char *source;\n  char *destination;\n  char *name;\n  long lVar1;\n  MagickBooleanType MVar2;\n  MagickBooleanType MVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  ExceptionInfo *pEVar6;\n  ImageInfo *image_info_00;\n  MagickInfo *magick_info;\n  char *pcVar7;\n  EncodeImageHandler *pEVar8;\n  ssize_t sVar9;\n  DelegateInfo *pDVar10;\n  Image *pIVar11;\n  long in_FS_OFFSET;\n  MagickInfo *local_2050;\n  char filename [4096];\n  char image_filename [4096];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  pEVar6 = AcquireExceptionInfo();\n  image_info_00 = CloneImageInfo(image_info);\n  source = image->filename;\n  destination = image_info_00->filename;\n  CopyMagickString(destination,source,0x1000);\n  SetImageInfo(image_info_00,1,pEVar6);\n  if (image_info_00->magick[0] == '\0') {\n    CopyMagickString(image_info_00->magick,image->magick,0x1000);\n  }\n  CopyMagickString(filename,source,0x1000);\n  CopyMagickString(source,destination,0x1000);\n  name = image_info_00->magick;\n  magick_info = GetMagickInfo(name,pEVar6);\n  if (pEVar6->severity == PolicyError) {\n    magick_info = GetMagickInfo(name,exception);\n  }\n  DestroyExceptionInfo(pEVar6);\n  if (magick_info == (MagickInfo *)0x0) {\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n  }\n  else {\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }\nLAB_00196685:\n  pEVar8 = GetImageEncoder(magick_info);\n  if (pEVar8 == (EncodeImageHandler *)0x0) {\n    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);\n    if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }\n  }\n  else {\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }\nLAB_001966eb:\n  if (MVar5 != MagickFalse) {\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }\n  iVar4 = LocaleCompare(name,"info");\n  if ((iVar4 != 0) && (image_info_00->verbose != MagickFalse)) {\n    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);\n  }\n  DestroyImageInfo(image_info_00);\n  MVar5 = GetBlobError(image);\n  if (MVar5 != MagickFalse) {\n    ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);\n    pIVar11 = image;\n    if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }\n    CloseBlob(image);\n    MVar2 = MagickFalse;\n  }\nLAB_00196730:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar2;\n}\n\n" comment comment comment comment comment comment comment (function_definition "MagickBooleanType WriteImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  char *source;\n  char *destination;\n  char *name;\n  long lVar1;\n  MagickBooleanType MVar2;\n  MagickBooleanType MVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  ExceptionInfo *pEVar6;\n  ImageInfo *image_info_00;\n  MagickInfo *magick_info;\n  char *pcVar7;\n  EncodeImageHandler *pEVar8;\n  ssize_t sVar9;\n  DelegateInfo *pDVar10;\n  Image *pIVar11;\n  long in_FS_OFFSET;\n  MagickInfo *local_2050;\n  char filename [4096];\n  char image_filename [4096];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  pEVar6 = AcquireExceptionInfo();\n  image_info_00 = CloneImageInfo(image_info);\n  source = image->filename;\n  destination = image_info_00->filename;\n  CopyMagickString(destination,source,0x1000);\n  SetImageInfo(image_info_00,1,pEVar6);\n  if (image_info_00->magick[0] == '\0') {\n    CopyMagickString(image_info_00->magick,image->magick,0x1000);\n  }\n  CopyMagickString(filename,source,0x1000);\n  CopyMagickString(source,destination,0x1000);\n  name = image_info_00->magick;\n  magick_info = GetMagickInfo(name,pEVar6);\n  if (pEVar6->severity == PolicyError) {\n    magick_info = GetMagickInfo(name,exception);\n  }\n  DestroyExceptionInfo(pEVar6);\n  if (magick_info == (MagickInfo *)0x0) {\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n  }\n  else {\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }\nLAB_00196685:\n  pEVar8 = GetImageEncoder(magick_info);\n  if (pEVar8 == (EncodeImageHandler *)0x0) {\n    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);\n    if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }\n  }\n  else {\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }\nLAB_001966eb:\n  if (MVar5 != MagickFalse) {\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }\n  iVar4 = LocaleCompare(name,"info");\n  if ((iVar4 != 0) && (image_info_00->verbose != MagickFalse)) {\n    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);\n  }\n  DestroyImageInfo(image_info_00);\n  MVar5 = GetBlobError(image);\n  if (MVar5 != MagickFalse) {\n    ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);\n    pIVar11 = image;\n    if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }\n    CloseBlob(image);\n    MVar2 = MagickFalse;\n  }\nLAB_00196730:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar2;\n}" type_identifier (function_declarator "WriteImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  char *source;\n  char *destination;\n  char *name;\n  long lVar1;\n  MagickBooleanType MVar2;\n  MagickBooleanType MVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  ExceptionInfo *pEVar6;\n  ImageInfo *image_info_00;\n  MagickInfo *magick_info;\n  char *pcVar7;\n  EncodeImageHandler *pEVar8;\n  ssize_t sVar9;\n  DelegateInfo *pDVar10;\n  Image *pIVar11;\n  long in_FS_OFFSET;\n  MagickInfo *local_2050;\n  char filename [4096];\n  char image_filename [4096];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  pEVar6 = AcquireExceptionInfo();\n  image_info_00 = CloneImageInfo(image_info);\n  source = image->filename;\n  destination = image_info_00->filename;\n  CopyMagickString(destination,source,0x1000);\n  SetImageInfo(image_info_00,1,pEVar6);\n  if (image_info_00->magick[0] == '\0') {\n    CopyMagickString(image_info_00->magick,image->magick,0x1000);\n  }\n  CopyMagickString(filename,source,0x1000);\n  CopyMagickString(source,destination,0x1000);\n  name = image_info_00->magick;\n  magick_info = GetMagickInfo(name,pEVar6);\n  if (pEVar6->severity == PolicyError) {\n    magick_info = GetMagickInfo(name,exception);\n  }\n  DestroyExceptionInfo(pEVar6);\n  if (magick_info == (MagickInfo *)0x0) {\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n  }\n  else {\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }\nLAB_00196685:\n  pEVar8 = GetImageEncoder(magick_info);\n  if (pEVar8 == (EncodeImageHandler *)0x0) {\n    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);\n    if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }\n  }\n  else {\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }\nLAB_001966eb:\n  if (MVar5 != MagickFalse) {\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }\n  iVar4 = LocaleCompare(name,"info");\n  if ((iVar4 != 0) && (image_info_00->verbose != MagickFalse)) {\n    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);\n  }\n  DestroyImageInfo(image_info_00);\n  MVar5 = GetBlobError(image);\n  if (MVar5 != MagickFalse) {\n    ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);\n    pIVar11 = image;\n    if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }\n    CloseBlob(image);\n    MVar2 = MagickFalse;\n  }\nLAB_00196730:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar2;\n}" { (declaration "char *source;" primitive_type (pointer_declarator "*source" * identifier) ;) (declaration "char *destination;" primitive_type (pointer_declarator "*destination" * identifier) ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "MagickBooleanType MVar2;" type_identifier identifier ;) (declaration "MagickBooleanType MVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "MagickBooleanType MVar5;" type_identifier identifier ;) (declaration "ExceptionInfo *pEVar6;" type_identifier (pointer_declarator "*pEVar6" * identifier) ;) (declaration "ImageInfo *image_info_00;" type_identifier (pointer_declarator "*image_info_00" * identifier) ;) (declaration "MagickInfo *magick_info;" type_identifier (pointer_declarator "*magick_info" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "EncodeImageHandler *pEVar8;" type_identifier (pointer_declarator "*pEVar8" * identifier) ;) (declaration "ssize_t sVar9;" primitive_type identifier ;) (declaration "DelegateInfo *pDVar10;" type_identifier (pointer_declarator "*pDVar10" * identifier) ;) (declaration "Image *pIVar11;" type_identifier (pointer_declarator "*pIVar11" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "MagickInfo *local_2050;" type_identifier (pointer_declarator "*local_2050" * identifier) ;) (declaration "char filename [4096];" primitive_type (array_declarator "filename [4096]" identifier [ number_literal ]) ;) (declaration "char image_filename [4096];" primitive_type (array_declarator "image_filename [4096]" identifier [ number_literal ]) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\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 != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");" (call_expression "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" identifier (argument_list "("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" ( (string_literal ""image_info != (ImageInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\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","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  );" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  )" identifier (argument_list "(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",image_info->filename\n                  )" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\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","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (expression_statement "pEVar6 = AcquireExceptionInfo();" (assignment_expression "pEVar6 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "image_info_00 = CloneImageInfo(image_info);" (assignment_expression "image_info_00 = CloneImageInfo(image_info)" identifier = (call_expression "CloneImageInfo(image_info)" identifier (argument_list "(image_info)" ( identifier )))) ;) (expression_statement "source = image->filename;" (assignment_expression "source = image->filename" identifier = (field_expression "image->filename" identifier -> field_identifier)) ;) (expression_statement "destination = image_info_00->filename;" (assignment_expression "destination = image_info_00->filename" identifier = (field_expression "image_info_00->filename" identifier -> field_identifier)) ;) (expression_statement "CopyMagickString(destination,source,0x1000);" (call_expression "CopyMagickString(destination,source,0x1000)" identifier (argument_list "(destination,source,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "SetImageInfo(image_info_00,1,pEVar6);" (call_expression "SetImageInfo(image_info_00,1,pEVar6)" identifier (argument_list "(image_info_00,1,pEVar6)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (image_info_00->magick[0] == '\0') {\n    CopyMagickString(image_info_00->magick,image->magick,0x1000);\n  }" if (parenthesized_expression "(image_info_00->magick[0] == '\0')" ( (binary_expression "image_info_00->magick[0] == '\0'" (subscript_expression "image_info_00->magick[0]" (field_expression "image_info_00->magick" identifier -> field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    CopyMagickString(image_info_00->magick,image->magick,0x1000);\n  }" { (expression_statement "CopyMagickString(image_info_00->magick,image->magick,0x1000);" (call_expression "CopyMagickString(image_info_00->magick,image->magick,0x1000)" identifier (argument_list "(image_info_00->magick,image->magick,0x1000)" ( (field_expression "image_info_00->magick" identifier -> field_identifier) , (field_expression "image->magick" identifier -> field_identifier) , number_literal ))) ;) })) (expression_statement "CopyMagickString(filename,source,0x1000);" (call_expression "CopyMagickString(filename,source,0x1000)" identifier (argument_list "(filename,source,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "CopyMagickString(source,destination,0x1000);" (call_expression "CopyMagickString(source,destination,0x1000)" identifier (argument_list "(source,destination,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "name = image_info_00->magick;" (assignment_expression "name = image_info_00->magick" identifier = (field_expression "image_info_00->magick" identifier -> field_identifier)) ;) (expression_statement "magick_info = GetMagickInfo(name,pEVar6);" (assignment_expression "magick_info = GetMagickInfo(name,pEVar6)" identifier = (call_expression "GetMagickInfo(name,pEVar6)" identifier (argument_list "(name,pEVar6)" ( identifier , identifier )))) ;) (if_statement "if (pEVar6->severity == PolicyError) {\n    magick_info = GetMagickInfo(name,exception);\n  }" if (parenthesized_expression "(pEVar6->severity == PolicyError)" ( (binary_expression "pEVar6->severity == PolicyError" (field_expression "pEVar6->severity" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    magick_info = GetMagickInfo(name,exception);\n  }" { (expression_statement "magick_info = GetMagickInfo(name,exception);" (assignment_expression "magick_info = GetMagickInfo(name,exception)" identifier = (call_expression "GetMagickInfo(name,exception)" identifier (argument_list "(name,exception)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(pEVar6);" (call_expression "DestroyExceptionInfo(pEVar6)" identifier (argument_list "(pEVar6)" ( identifier ))) ;) (if_statement "if (magick_info == (MagickInfo *)0x0) {\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n  }\n  else {\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }" if (parenthesized_expression "(magick_info == (MagickInfo *)0x0)" ( (binary_expression "magick_info == (MagickInfo *)0x0" identifier == (cast_expression "(MagickInfo *)0x0" ( (type_descriptor "MagickInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n  }" { (expression_statement "SyncImageProfiles(image);" (call_expression "SyncImageProfiles(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(image);" (call_expression "DisassociateImageStream(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "pcVar7 = GetImageOption(image_info,"delegate:bimodal");" (assignment_expression "pcVar7 = GetImageOption(image_info,"delegate:bimodal")" identifier = (call_expression "GetImageOption(image_info,"delegate:bimodal")" identifier (argument_list "(image_info,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "MVar2 = IsStringTrue(pcVar7);" (assignment_expression "MVar2 = IsStringTrue(pcVar7)" identifier = (call_expression "IsStringTrue(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) {\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }\n    else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }" { (expression_statement "MVar5 = MagickFalse;" (assignment_expression "MVar5 = MagickFalse" identifier = identifier) ;) (expression_statement "MVar2 = MagickFalse;" (assignment_expression "MVar2 = MagickFalse" identifier = identifier) ;) }) (else_clause "else {\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }" else (compound_statement "{\n      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;\n      MVar5 = MagickFalse;\n      MVar2 = MagickFalse;\n    }" { (if_statement "if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;" if (parenthesized_expression "(image_info_00->page == (char *)0x0)" ( (binary_expression "image_info_00->page == (char *)0x0" (field_expression "image_info_00->page" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00196dd4;" goto statement_identifier ;)) (expression_statement "MVar5 = MagickFalse;" (assignment_expression "MVar5 = MagickFalse" identifier = identifier) ;) (expression_statement "MVar2 = MagickFalse;" (assignment_expression "MVar2 = MagickFalse" identifier = identifier) ;) }))) }) (else_clause "else {\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }" else (compound_statement "{\n    MVar2 = GetMagickEndianSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }\n    SyncImageProfiles(image);\n    DisassociateImageStream(image);\n    pcVar7 = GetImageOption(image_info,"delegate:bimodal");\n    MVar2 = IsStringTrue(pcVar7);\n    if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }\n    MVar2 = GetMagickEncoderSeekableStream(magick_info);\n    MVar5 = MVar2;\n    if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }\n  }" { (expression_statement "MVar2 = GetMagickEndianSupport(magick_info);" (assignment_expression "MVar2 = GetMagickEndianSupport(magick_info)" identifier = (call_expression "GetMagickEndianSupport(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) {\n      image->endian = UndefinedEndian;\n    }\n    else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      image->endian = UndefinedEndian;\n    }" { (expression_statement "image->endian = UndefinedEndian;" (assignment_expression "image->endian = UndefinedEndian" (field_expression "image->endian" identifier -> field_identifier) = identifier) ;) }) (else_clause "else if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }" else (if_statement "if ((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)) {\n      image->endian = LSBEndian;\n    }" if (parenthesized_expression "((image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse))" ( (binary_expression "(image_info->endian == UndefinedEndian) &&\n            (MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)" (parenthesized_expression "(image_info->endian == UndefinedEndian)" ( (binary_expression "image_info->endian == UndefinedEndian" (field_expression "image_info->endian" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse)" ( (comma_expression "MVar2 = GetMagickRawSupport(magick_info), MVar2 != MagickFalse" (assignment_expression "MVar2 = GetMagickRawSupport(magick_info)" identifier = (call_expression "GetMagickRawSupport(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) , (binary_expression "MVar2 != MagickFalse" identifier != identifier)) ))) )) (compound_statement "{\n      image->endian = LSBEndian;\n    }" { (expression_statement "image->endian = LSBEndian;" (assignment_expression "image->endian = LSBEndian" (field_expression "image->endian" identifier -> field_identifier) = identifier) ;) })))) (expression_statement "SyncImageProfiles(image);" (call_expression "SyncImageProfiles(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(image);" (call_expression "DisassociateImageStream(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "pcVar7 = GetImageOption(image_info,"delegate:bimodal");" (assignment_expression "pcVar7 = GetImageOption(image_info,"delegate:bimodal")" identifier = (call_expression "GetImageOption(image_info,"delegate:bimodal")" identifier (argument_list "(image_info,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "MVar2 = IsStringTrue(pcVar7);" (assignment_expression "MVar2 = IsStringTrue(pcVar7)" identifier = (call_expression "IsStringTrue(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if ((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)) {\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }" if (parenthesized_expression "((MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0))" ( (binary_expression "(MVar2 != MagickFalse) && (image_info_00->page == (char *)0x0)" (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) && (parenthesized_expression "(image_info_00->page == (char *)0x0)" ( (binary_expression "image_info_00->page == (char *)0x0" (field_expression "image_info_00->page" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);\n      if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }\n    }" { (labeled_statement "LAB_00196dd4:\n      pIVar11 = GetPreviousImageInList(image);" statement_identifier : (expression_statement "pIVar11 = GetPreviousImageInList(image);" (assignment_expression "pIVar11 = GetPreviousImageInList(image)" identifier = (call_expression "GetPreviousImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (if_statement "if ((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))) {\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" if (parenthesized_expression "((pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse))))" ( (binary_expression "(pIVar11 == (Image *)0x0) &&\n         ((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))" (parenthesized_expression "(pIVar11 == (Image *)0x0)" ( (binary_expression "pIVar11 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)))" ( (parenthesized_expression "(pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse))" ( (comma_expression "pIVar11 = GetNextImageInList(image), pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)" (assignment_expression "pIVar11 = GetNextImageInList(image)" identifier = (call_expression "GetNextImageInList(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "pIVar11 == (Image *)0x0 &&\n          (MVar2 = IsTaintImage(image), MVar2 == MagickFalse)" (binary_expression "pIVar11 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(MVar2 = IsTaintImage(image), MVar2 == MagickFalse)" ( (comma_expression "MVar2 = IsTaintImage(image), MVar2 == MagickFalse" (assignment_expression "MVar2 = IsTaintImage(image)" identifier = (call_expression "IsTaintImage(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "MVar2 == MagickFalse" identifier == identifier)) )))) )) ))) )) (compound_statement "{\n        pDVar10 = GetDelegateInfo(image->magick,name,exception);\n        if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" { (expression_statement "pDVar10 = GetDelegateInfo(image->magick,name,exception);" (assignment_expression "pDVar10 = GetDelegateInfo(image->magick,name,exception)" identifier = (call_expression "GetDelegateInfo(image->magick,name,exception)" identifier (argument_list "(image->magick,name,exception)" ( (field_expression "image->magick" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if ((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)) {\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }" if (parenthesized_expression "((pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0))" ( (binary_expression "(pDVar10 != (DelegateInfo *)0x0) && (sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)" (parenthesized_expression "(pDVar10 != (DelegateInfo *)0x0)" ( (binary_expression "pDVar10 != (DelegateInfo *)0x0" identifier != (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(sVar9 = GetDelegateMode(pDVar10), sVar9 == 0)" ( (comma_expression "sVar9 = GetDelegateMode(pDVar10), sVar9 == 0" (assignment_expression "sVar9 = GetDelegateMode(pDVar10)" identifier = (call_expression "GetDelegateMode(pDVar10)" identifier (argument_list "(pDVar10)" ( identifier )))) , (binary_expression "sVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          MVar2 = IsPathAccessible(image->magick_filename);\n          if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }\n        }" { (expression_statement "MVar2 = IsPathAccessible(image->magick_filename);" (assignment_expression "MVar2 = IsPathAccessible(image->magick_filename)" identifier = (call_expression "IsPathAccessible(image->magick_filename)" identifier (argument_list "(image->magick_filename)" ( (field_expression "image->magick_filename" identifier -> field_identifier) )))) ;) (if_statement "if (MVar2 != MagickFalse) {\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            CopyMagickString(source,image->magick_filename,0x1000);\n            MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);\n            DestroyImageInfo(image_info_00);\n            CopyMagickString(source,filename,0x1000);\n            goto LAB_00196730;\n          }" { (expression_statement "CopyMagickString(source,image->magick_filename,0x1000);" (call_expression "CopyMagickString(source,image->magick_filename,0x1000)" identifier (argument_list "(source,image->magick_filename,0x1000)" ( identifier , (field_expression "image->magick_filename" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception);" (assignment_expression "MVar2 = InvokeDelegate(image_info_00,image,image->magick,name,exception)" identifier = (call_expression "InvokeDelegate(image_info_00,image,image->magick,name,exception)" identifier (argument_list "(image_info_00,image,image->magick,name,exception)" ( identifier , identifier , (field_expression "image->magick" identifier -> field_identifier) , identifier , identifier )))) ;) (expression_statement "DestroyImageInfo(image_info_00);" (call_expression "DestroyImageInfo(image_info_00)" identifier (argument_list "(image_info_00)" ( identifier ))) ;) (expression_statement "CopyMagickString(source,filename,0x1000);" (call_expression "CopyMagickString(source,filename,0x1000)" identifier (argument_list "(source,filename,0x1000)" ( identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_00196730;" goto statement_identifier ;) })) })) })) (if_statement "if (magick_info == (MagickInfo *)0x0) {\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }" if (parenthesized_expression "(magick_info == (MagickInfo *)0x0)" ( (binary_expression "magick_info == (MagickInfo *)0x0" identifier == (cast_expression "(MagickInfo *)0x0" ( (type_descriptor "MagickInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        MVar5 = MagickFalse;\n        MVar2 = MagickFalse;\n        goto LAB_00196685;\n      }" { (expression_statement "MVar5 = MagickFalse;" (assignment_expression "MVar5 = MagickFalse" identifier = identifier) ;) (expression_statement "MVar2 = MagickFalse;" (assignment_expression "MVar2 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_00196685;" goto statement_identifier ;) })) })) (expression_statement "MVar2 = GetMagickEncoderSeekableStream(magick_info);" (assignment_expression "MVar2 = GetMagickEncoderSeekableStream(magick_info)" identifier = (call_expression "GetMagickEncoderSeekableStream(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) ;) (expression_statement "MVar5 = MVar2;" (assignment_expression "MVar5 = MVar2" identifier = identifier) ;) (if_statement "if (MVar2 != MagickFalse) {\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n      CopyMagickString(image_filename,source,0x1000);\n      MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n      CopyMagickString(source,image_filename,0x1000);\n      MVar5 = MVar2;\n      if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }\n    }" { (expression_statement "CopyMagickString(image_filename,source,0x1000);" (call_expression "CopyMagickString(image_filename,source,0x1000)" identifier (argument_list "(image_filename,source,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);" (assignment_expression "MVar2 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier (argument_list "(image_info,image,WriteBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "CopyMagickString(source,image_filename,0x1000);" (call_expression "CopyMagickString(source,image_filename,0x1000)" identifier (argument_list "(source,image_filename,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "MVar5 = MVar2;" (assignment_expression "MVar5 = MVar2" identifier = identifier) ;) (if_statement "if (MVar2 != MagickFalse) {\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n        MVar5 = IsBlobSeekable(image);\n        if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }\n        MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);\n        CloseBlob(image);\n      }" { (expression_statement "MVar5 = IsBlobSeekable(image);" (assignment_expression "MVar5 = IsBlobSeekable(image)" identifier = (call_expression "IsBlobSeekable(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (MVar5 == MagickFalse) {\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }" if (parenthesized_expression "(MVar5 == MagickFalse)" ( (binary_expression "MVar5 == MagickFalse" identifier == identifier) )) (compound_statement "{\n          image_info_00->adjoin = MagickTrue;\n          CopyMagickString(destination,source,0x1000);\n          AcquireUniqueFilename(source);\n        }" { (expression_statement "image_info_00->adjoin = MagickTrue;" (assignment_expression "image_info_00->adjoin = MagickTrue" (field_expression "image_info_00->adjoin" identifier -> field_identifier) = identifier) ;) (expression_statement "CopyMagickString(destination,source,0x1000);" (call_expression "CopyMagickString(destination,source,0x1000)" identifier (argument_list "(destination,source,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "AcquireUniqueFilename(source);" (call_expression "AcquireUniqueFilename(source)" identifier (argument_list "(source)" ( identifier ))) ;) })) (expression_statement "MVar5 = (MagickBooleanType)(MVar5 == MagickFalse);" (assignment_expression "MVar5 = (MagickBooleanType)(MVar5 == MagickFalse)" identifier = (call_expression "(MagickBooleanType)(MVar5 == MagickFalse)" (parenthesized_expression "(MagickBooleanType)" ( identifier )) (argument_list "(MVar5 == MagickFalse)" ( (binary_expression "MVar5 == MagickFalse" identifier == identifier) )))) ;) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) })) })) }))) (labeled_statement "LAB_00196685:\n  pEVar8 = GetImageEncoder(magick_info);" statement_identifier : (expression_statement "pEVar8 = GetImageEncoder(magick_info);" (assignment_expression "pEVar8 = GetImageEncoder(magick_info)" identifier = (call_expression "GetImageEncoder(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) ;)) (if_statement "if (pEVar8 == (EncodeImageHandler *)0x0) {\n    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);\n    if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }\n  }\n  else {\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }" if (parenthesized_expression "(pEVar8 == (EncodeImageHandler *)0x0)" ( (binary_expression "pEVar8 == (EncodeImageHandler *)0x0" identifier == (cast_expression "(EncodeImageHandler *)0x0" ( (type_descriptor "EncodeImageHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pDVar10 = GetDelegateInfo((char *)0x0,name,exception);\n    if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }\n  }" { (expression_statement "pDVar10 = GetDelegateInfo((char *)0x0,name,exception);" (assignment_expression "pDVar10 = GetDelegateInfo((char *)0x0,name,exception)" identifier = (call_expression "GetDelegateInfo((char *)0x0,name,exception)" identifier (argument_list "((char *)0x0,name,exception)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier )))) ;) (if_statement "if (pDVar10 == (DelegateInfo *)0x0) {\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }\n    else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }" if (parenthesized_expression "(pDVar10 == (DelegateInfo *)0x0)" ( (binary_expression "pDVar10 == (DelegateInfo *)0x0" identifier == (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar6 = AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(name,pEVar6);\n      if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      DestroyExceptionInfo(pEVar6);\n      if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }\n      pEVar8 = GetImageEncoder(local_2050);\n      if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      MVar2 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }\n      MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n      if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }\n      MVar3 = GetMagickEncoderThreadSupport(local_2050);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }\n    }" { (expression_statement "pEVar6 = AcquireExceptionInfo();" (assignment_expression "pEVar6 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_2050 = GetMagickInfo(name,pEVar6);" (assignment_expression "local_2050 = GetMagickInfo(name,pEVar6)" identifier = (call_expression "GetMagickInfo(name,pEVar6)" identifier (argument_list "(name,pEVar6)" ( identifier , identifier )))) ;) (if_statement "if (pEVar6->severity == PolicyError) {\n        local_2050 = GetMagickInfo(name,exception);\n      }" if (parenthesized_expression "(pEVar6->severity == PolicyError)" ( (binary_expression "pEVar6->severity == PolicyError" (field_expression "pEVar6->severity" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        local_2050 = GetMagickInfo(name,exception);\n      }" { (expression_statement "local_2050 = GetMagickInfo(name,exception);" (assignment_expression "local_2050 = GetMagickInfo(name,exception)" identifier = (call_expression "GetMagickInfo(name,exception)" identifier (argument_list "(name,exception)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(pEVar6);" (call_expression "DestroyExceptionInfo(pEVar6)" identifier (argument_list "(pEVar6)" ( identifier ))) ;) (if_statement "if ((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)) {\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }" if (parenthesized_expression "((image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0))" ( (binary_expression "(image_info_00->affirm == MagickFalse) && (local_2050 == (MagickInfo *)0x0)" (parenthesized_expression "(image_info_00->affirm == MagickFalse)" ( (binary_expression "image_info_00->affirm == MagickFalse" (field_expression "image_info_00->affirm" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(local_2050 == (MagickInfo *)0x0)" ( (binary_expression "local_2050 == (MagickInfo *)0x0" identifier == (cast_expression "(MagickInfo *)0x0" ( (type_descriptor "MagickInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        CopyMagickString(name,image->magick,0x1000);\n        local_2050 = GetMagickInfo(name,exception);\n      }" { (expression_statement "CopyMagickString(name,image->magick,0x1000);" (call_expression "CopyMagickString(name,image->magick,0x1000)" identifier (argument_list "(name,image->magick,0x1000)" ( identifier , (field_expression "image->magick" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "local_2050 = GetMagickInfo(name,exception);" (assignment_expression "local_2050 = GetMagickInfo(name,exception)" identifier = (call_expression "GetMagickInfo(name,exception)" identifier (argument_list "(name,exception)" ( identifier , identifier )))) ;) })) (expression_statement "pEVar8 = GetImageEncoder(local_2050);" (assignment_expression "pEVar8 = GetImageEncoder(local_2050)" identifier = (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (pEVar8 == (EncodeImageHandler *)0x0) {\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }" if (parenthesized_expression "(pEVar8 == (EncodeImageHandler *)0x0)" ( (binary_expression "pEVar8 == (EncodeImageHandler *)0x0" identifier == (cast_expression "(EncodeImageHandler *)0x0" ( (type_descriptor "EncodeImageHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        GetPathComponent(source,ExtensionPath,image_filename);\n        if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }\n        CopyMagickString(source,filename,0x1000);\n        pEVar8 = GetImageEncoder(local_2050);\n        if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }\n      }" { (expression_statement "GetPathComponent(source,ExtensionPath,image_filename);" (call_expression "GetPathComponent(source,ExtensionPath,image_filename)" identifier (argument_list "(source,ExtensionPath,image_filename)" ( identifier , identifier , identifier ))) ;) (if_statement "if (image_filename[0] == '\0') {\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }\n        else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }" if (parenthesized_expression "(image_filename[0] == '\0')" ( (binary_expression "image_filename[0] == '\0'" (subscript_expression "image_filename[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2050 = GetMagickInfo(image->magick,exception);\n        }" { (expression_statement "local_2050 = GetMagickInfo(image->magick,exception);" (assignment_expression "local_2050 = GetMagickInfo(image->magick,exception)" identifier = (call_expression "GetMagickInfo(image->magick,exception)" identifier (argument_list "(image->magick,exception)" ( (field_expression "image->magick" identifier -> field_identifier) , identifier )))) ;) }) (else_clause "else {\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }" else (compound_statement "{\n          local_2050 = GetMagickInfo(image_filename,exception);\n        }" { (expression_statement "local_2050 = GetMagickInfo(image_filename,exception);" (assignment_expression "local_2050 = GetMagickInfo(image_filename,exception)" identifier = (call_expression "GetMagickInfo(image_filename,exception)" identifier (argument_list "(image_filename,exception)" ( identifier , identifier )))) ;) }))) (expression_statement "CopyMagickString(source,filename,0x1000);" (call_expression "CopyMagickString(source,filename,0x1000)" identifier (argument_list "(source,filename,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pEVar8 = GetImageEncoder(local_2050);" (assignment_expression "pEVar8 = GetImageEncoder(local_2050)" identifier = (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (pEVar8 == (EncodeImageHandler *)0x0) {\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }" if (parenthesized_expression "(pEVar8 == (EncodeImageHandler *)0x0)" ( (binary_expression "pEVar8 == (EncodeImageHandler *)0x0" identifier == (cast_expression "(EncodeImageHandler *)0x0" ( (type_descriptor "EncodeImageHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2050 = GetMagickInfo(image->magick,exception);\n          pEVar8 = GetImageEncoder(local_2050);\n          if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }\n        }" { (expression_statement "local_2050 = GetMagickInfo(image->magick,exception);" (assignment_expression "local_2050 = GetMagickInfo(image->magick,exception)" identifier = (call_expression "GetMagickInfo(image->magick,exception)" identifier (argument_list "(image->magick,exception)" ( (field_expression "image->magick" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pEVar8 = GetImageEncoder(local_2050);" (assignment_expression "pEVar8 = GetImageEncoder(local_2050)" identifier = (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (pEVar8 == (EncodeImageHandler *)0x0) {\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }" if (parenthesized_expression "(pEVar8 == (EncodeImageHandler *)0x0)" ( (binary_expression "pEVar8 == (EncodeImageHandler *)0x0" identifier == (cast_expression "(EncodeImageHandler *)0x0" ( (type_descriptor "EncodeImageHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);\n            goto LAB_001966eb;\n          }" { (expression_statement "ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);" (call_expression "ThrowMagickException\n                      (exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name)" identifier (argument_list "(exception,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",name)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , identifier , (string_literal ""NoEncodeDelegateForThisImageFormat"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_001966eb;" goto statement_identifier ;) })) })) })) (expression_statement "MVar2 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "MVar2 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(local_2050->semaphore);\n      }" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        LockSemaphoreInfo(local_2050->semaphore);\n      }" { (expression_statement "LockSemaphoreInfo(local_2050->semaphore);" (call_expression "LockSemaphoreInfo(local_2050->semaphore)" identifier (argument_list "(local_2050->semaphore)" ( (field_expression "local_2050->semaphore" identifier -> field_identifier) ))) ;) })) (expression_statement "MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);" (assignment_expression "MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception)" identifier = (call_expression "IsCoderAuthorized(name,WritePolicyRights,exception)" identifier (argument_list "(name,WritePolicyRights,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar2 != MagickFalse) {\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n        MVar2 = (*pEVar8)(image_info_00,image,exception);\n      }" { (expression_statement "MVar2 = (*pEVar8)(image_info_00,image,exception);" (assignment_expression "MVar2 = (*pEVar8)(image_info_00,image,exception)" identifier = (call_expression "(*pEVar8)(image_info_00,image,exception)" (parenthesized_expression "(*pEVar8)" ( (pointer_expression "*pEVar8" * identifier) )) (argument_list "(image_info_00,image,exception)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "MVar3 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "MVar3 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }" if (parenthesized_expression "(MVar3 == MagickFalse)" ( (binary_expression "MVar3 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        UnlockSemaphoreInfo(local_2050->semaphore);\n      }" { (expression_statement "UnlockSemaphoreInfo(local_2050->semaphore);" (call_expression "UnlockSemaphoreInfo(local_2050->semaphore)" identifier (argument_list "(local_2050->semaphore)" ( (field_expression "local_2050->semaphore" identifier -> field_identifier) ))) ;) })) }) (else_clause "else {\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }" else (compound_statement "{\n      image_info_00->filename[0] = '\0';\n      MVar2 = GetDelegateThreadSupport(pDVar10);\n      if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }\n      MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);\n      MVar3 = GetDelegateThreadSupport(pDVar10);\n      if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }\n      CopyMagickString(source,filename,0x1000);\n    }" { (expression_statement "image_info_00->filename[0] = '\0';" (assignment_expression "image_info_00->filename[0] = '\0'" (subscript_expression "image_info_00->filename[0]" (field_expression "image_info_00->filename" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "MVar2 = GetDelegateThreadSupport(pDVar10);" (assignment_expression "MVar2 = GetDelegateThreadSupport(pDVar10)" identifier = (call_expression "GetDelegateThreadSupport(pDVar10)" identifier (argument_list "(pDVar10)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) {\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        LockSemaphoreInfo(pDVar10->semaphore);\n      }" { (expression_statement "LockSemaphoreInfo(pDVar10->semaphore);" (call_expression "LockSemaphoreInfo(pDVar10->semaphore)" identifier (argument_list "(pDVar10->semaphore)" ( (field_expression "pDVar10->semaphore" identifier -> field_identifier) ))) ;) })) (expression_statement "MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception);" (assignment_expression "MVar2 = InvokeDelegate(image_info_00,image,(char *)0x0,name,exception)" identifier = (call_expression "InvokeDelegate(image_info_00,image,(char *)0x0,name,exception)" identifier (argument_list "(image_info_00,image,(char *)0x0,name,exception)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier )))) ;) (expression_statement "MVar3 = GetDelegateThreadSupport(pDVar10);" (assignment_expression "MVar3 = GetDelegateThreadSupport(pDVar10)" identifier = (call_expression "GetDelegateThreadSupport(pDVar10)" identifier (argument_list "(pDVar10)" ( identifier )))) ;) (if_statement "if (MVar3 == MagickFalse) {\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }" if (parenthesized_expression "(MVar3 == MagickFalse)" ( (binary_expression "MVar3 == MagickFalse" identifier == identifier) )) (compound_statement "{\n        UnlockSemaphoreInfo(pDVar10->semaphore);\n      }" { (expression_statement "UnlockSemaphoreInfo(pDVar10->semaphore);" (call_expression "UnlockSemaphoreInfo(pDVar10->semaphore)" identifier (argument_list "(pDVar10->semaphore)" ( (field_expression "pDVar10->semaphore" identifier -> field_identifier) ))) ;) })) (expression_statement "CopyMagickString(source,filename,0x1000);" (call_expression "CopyMagickString(source,filename,0x1000)" identifier (argument_list "(source,filename,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) }) (else_clause "else {\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }" else (compound_statement "{\n    MVar2 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }\n    MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);\n    if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }\n    MVar3 = GetMagickEncoderThreadSupport(magick_info);\n    if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }\n  }" { (expression_statement "MVar2 = GetMagickEncoderThreadSupport(magick_info);" (assignment_expression "MVar2 = GetMagickEncoderThreadSupport(magick_info)" identifier = (call_expression "GetMagickEncoderThreadSupport(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) {\n      LockSemaphoreInfo(magick_info->semaphore);\n    }" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      LockSemaphoreInfo(magick_info->semaphore);\n    }" { (expression_statement "LockSemaphoreInfo(magick_info->semaphore);" (call_expression "LockSemaphoreInfo(magick_info->semaphore)" identifier (argument_list "(magick_info->semaphore)" ( (field_expression "magick_info->semaphore" identifier -> field_identifier) ))) ;) })) (expression_statement "MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception);" (assignment_expression "MVar2 = IsCoderAuthorized(name,WritePolicyRights,exception)" identifier = (call_expression "IsCoderAuthorized(name,WritePolicyRights,exception)" identifier (argument_list "(name,WritePolicyRights,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar2 != MagickFalse) {\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n      MVar2 = (*pEVar8)(image_info_00,image,exception);\n    }" { (expression_statement "MVar2 = (*pEVar8)(image_info_00,image,exception);" (assignment_expression "MVar2 = (*pEVar8)(image_info_00,image,exception)" identifier = (call_expression "(*pEVar8)(image_info_00,image,exception)" (parenthesized_expression "(*pEVar8)" ( (pointer_expression "*pEVar8" * identifier) )) (argument_list "(image_info_00,image,exception)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "MVar3 = GetMagickEncoderThreadSupport(magick_info);" (assignment_expression "MVar3 = GetMagickEncoderThreadSupport(magick_info)" identifier = (call_expression "GetMagickEncoderThreadSupport(magick_info)" identifier (argument_list "(magick_info)" ( identifier )))) ;) (if_statement "if (MVar3 == MagickFalse) {\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }" if (parenthesized_expression "(MVar3 == MagickFalse)" ( (binary_expression "MVar3 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      UnlockSemaphoreInfo(magick_info->semaphore);\n    }" { (expression_statement "UnlockSemaphoreInfo(magick_info->semaphore);" (call_expression "UnlockSemaphoreInfo(magick_info->semaphore)" identifier (argument_list "(magick_info->semaphore)" ( (field_expression "magick_info->semaphore" identifier -> field_identifier) ))) ;) })) }))) (labeled_statement "LAB_001966eb:\n  if (MVar5 != MagickFalse) {\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }" statement_identifier : (if_statement "if (MVar5 != MagickFalse) {\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }" if (parenthesized_expression "(MVar5 != MagickFalse)" ( (binary_expression "MVar5 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);\n    if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }\n    CloseBlob(image);\n    RelinquishUniqueFileResource(source);\n    CopyMagickString(source,destination,0x1000);\n  }" { (expression_statement "MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception);" (assignment_expression "MVar2 = OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info_00,image,ReadBinaryBlobMode,exception)" identifier (argument_list "(image_info_00,image,ReadBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar2 != MagickFalse) {\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }" if (parenthesized_expression "(MVar2 != MagickFalse)" ( (binary_expression "MVar2 != MagickFalse" identifier != identifier) )) (compound_statement "{\n      RelinquishUniqueFileResource(destination);\n      MVar2 = ImageToFile(image,destination,exception);\n    }" { (expression_statement "RelinquishUniqueFileResource(destination);" (call_expression "RelinquishUniqueFileResource(destination)" identifier (argument_list "(destination)" ( identifier ))) ;) (expression_statement "MVar2 = ImageToFile(image,destination,exception);" (assignment_expression "MVar2 = ImageToFile(image,destination,exception)" identifier = (call_expression "ImageToFile(image,destination,exception)" identifier (argument_list "(image,destination,exception)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "RelinquishUniqueFileResource(source);" (call_expression "RelinquishUniqueFileResource(source)" identifier (argument_list "(source)" ( identifier ))) ;) (expression_statement "CopyMagickString(source,destination,0x1000);" (call_expression "CopyMagickString(source,destination,0x1000)" identifier (argument_list "(source,destination,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "iVar4 = LocaleCompare(name,"info");" (assignment_expression "iVar4 = LocaleCompare(name,"info")" identifier = (call_expression "LocaleCompare(name,"info")" identifier (argument_list "(name,"info")" ( identifier , (string_literal ""info"" " string_content ") )))) ;) (if_statement "if ((iVar4 != 0) && (image_info_00->verbose != MagickFalse)) {\n    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);\n  }" if (parenthesized_expression "((iVar4 != 0) && (image_info_00->verbose != MagickFalse))" ( (binary_expression "(iVar4 != 0) && (image_info_00->verbose != MagickFalse)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(image_info_00->verbose != MagickFalse)" ( (binary_expression "image_info_00->verbose != MagickFalse" (field_expression "image_info_00->verbose" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n    IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);\n  }" { (expression_statement "IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception);" (call_expression "IdentifyImage(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception)" identifier (argument_list "(image,*(FILE **)PTR_stdout_006dafe8,MagickFalse,exception)" ( identifier , (pointer_expression "*(FILE **)PTR_stdout_006dafe8" * (cast_expression "(FILE **)PTR_stdout_006dafe8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) })) (expression_statement "DestroyImageInfo(image_info_00);" (call_expression "DestroyImageInfo(image_info_00)" identifier (argument_list "(image_info_00)" ( identifier ))) ;) (expression_statement "MVar5 = GetBlobError(image);" (assignment_expression "MVar5 = GetBlobError(image)" identifier = (call_expression "GetBlobError(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (MVar5 != MagickFalse) {\n    ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);\n    pIVar11 = image;\n    if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }\n    CloseBlob(image);\n    MVar2 = MagickFalse;\n  }" if (parenthesized_expression "(MVar5 != MagickFalse)" ( (binary_expression "MVar5 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);\n    pIVar11 = image;\n    if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }\n    CloseBlob(image);\n    MVar2 = MagickFalse;\n  }" { (expression_statement "ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source);" (call_expression "ThrowMagickException\n              (exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source)" identifier (argument_list "(exception,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,\n               "UnableToWriteFile","`%s\'",source)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , identifier , (string_literal ""UnableToWriteFile"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pIVar11 = image;" (assignment_expression "pIVar11 = image" identifier = identifier) ;) (if_statement "if (image_info->adjoin != MagickFalse) {\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }" if (parenthesized_expression "(image_info->adjoin != MagickFalse)" ( (binary_expression "image_info->adjoin != MagickFalse" (field_expression "image_info->adjoin" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);\n    }" { (do_statement "do {\n        image = pIVar11;\n        pIVar11 = image->previous;\n      } while (image->previous != (_Image *)0x0);" do (compound_statement "{\n        image = pIVar11;\n        pIVar11 = image->previous;\n      }" { (expression_statement "image = pIVar11;" (assignment_expression "image = pIVar11" identifier = identifier) ;) (expression_statement "pIVar11 = image->previous;" (assignment_expression "pIVar11 = image->previous" identifier = (field_expression "image->previous" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(image->previous != (_Image *)0x0)" ( (binary_expression "image->previous != (_Image *)0x0" (field_expression "image->previous" identifier -> field_identifier) != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "MVar2 = MagickFalse;" (assignment_expression "MVar2 = MagickFalse" identifier = identifier) ;) })) (labeled_statement "LAB_00196730:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return MVar2;" return identifier ;) })))
(translation_unit "uint WriteImage(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar6;\n}\n\n" (function_definition "uint WriteImage(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar6;\n}" type_identifier (function_declarator "WriteImage(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar6;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_2050;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_2048 [4096];" type_identifier (array_declarator "local_2048 [4096]" identifier [ number_literal ]) ;) (declaration "char local_1048 [4104];" primitive_type (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }" { (expression_statement "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");" (call_expression "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" identifier (argument_list "("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" ( (string_literal ""image_info != (ImageInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" * (cast_expression "(long *)(param_1 + 0x3278)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3278)" ( (binary_expression "param_1 + 0x3278" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_2 + 0x3418) != 0" (pointer_expression "*(int *)(param_2 + 0x3418)" * (cast_expression "(int *)(param_2 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3418)" ( (binary_expression "param_2 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" identifier (argument_list "(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" ( number_literal , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" * (cast_expression "(long *)(param_2 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3450)" ( (binary_expression "param_2 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/constitute.c"" " string_content ") , number_literal , (string_literal ""WriteImage"" " string_content ") ))) ;) })) (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" identifier = (cast_expression "(int *)AcquireExceptionInfo()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( ))))) ;) (expression_statement "lVar8 = CloneImageInfo(param_1);" (assignment_expression "lVar8 = CloneImageInfo(param_1)" identifier = (call_expression "CloneImageInfo(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "lVar1 = param_2 + 0x3f8;" (assignment_expression "lVar1 = param_2 + 0x3f8" identifier = (binary_expression "param_2 + 0x3f8" identifier + number_literal)) ;) (expression_statement "lVar2 = lVar8 + 0x2270;" (assignment_expression "lVar2 = lVar8 + 0x2270" identifier = (binary_expression "lVar8 + 0x2270" identifier + number_literal)) ;) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" identifier (argument_list "(lVar2,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "SetImageInfo(lVar8,1,piVar7);" (call_expression "SetImageInfo(lVar8,1,piVar7)" identifier (argument_list "(lVar8,1,piVar7)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" if (parenthesized_expression "(*(char *)(lVar8 + 0x270) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x270) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x270)" * (cast_expression "(char *)(lVar8 + 0x270)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x270)" ( (binary_expression "lVar8 + 0x270" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" { (expression_statement "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" identifier (argument_list "(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" ( (binary_expression "lVar8 + 0x270" identifier + number_literal) , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "CopyMagickString(local_2048,lVar1,0x1000);" (call_expression "CopyMagickString(local_2048,lVar1,0x1000)" identifier (argument_list "(local_2048,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" identifier (argument_list "(lVar1,lVar2,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "lVar3 = lVar8 + 0x270;" (assignment_expression "lVar3 = lVar8 + 0x270" identifier = (binary_expression "lVar8 + 0x270" identifier + number_literal)) ;) (expression_statement "lVar9 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,piVar7)" identifier = (call_expression "GetMagickInfo(lVar3,piVar7)" identifier (argument_list "(lVar3,piVar7)" ( identifier , identifier )))) ;) (if_statement "if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" if (parenthesized_expression "(*piVar7 == 499)" ( (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" * identifier) == number_literal) )) (compound_statement "{\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" { (expression_statement "lVar9 = GetMagickInfo(lVar3,param_3);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (if_statement "if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }" { (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" identifier = (call_expression "GetImageOption(param_1,"delegate:bimodal")" identifier (argument_list "(param_1,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" identifier = (call_expression "IsStringTrue(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0;\n      uVar6 = 0;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" else (compound_statement "{\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" { (if_statement "if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;" if (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" ( (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" * (cast_expression "(long *)(lVar8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00196dd4;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" else (compound_statement "{\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" { (expression_statement "iVar5 = GetMagickEndianSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEndianSupport(lVar9)" identifier = (call_expression "GetMagickEndianSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" * (cast_expression "(undefined4 *)(param_2 + 0x2ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2ac)" ( (binary_expression "param_2 + 0x2ac" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" else (if_statement "if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0))" ( (binary_expression "(*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" ( (comma_expression "iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0" (assignment_expression "iVar5 = GetMagickRawSupport(lVar9)" identifier = (call_expression "GetMagickRawSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" { (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" * (cast_expression "(undefined4 *)(param_2 + 0x2ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2ac)" ( (binary_expression "param_2 + 0x2ac" identifier + number_literal) )))) = number_literal) ;) })))) (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" identifier = (call_expression "GetImageOption(param_1,"delegate:bimodal")" identifier (argument_list "(param_1,"delegate:bimodal")" ( identifier , (string_literal ""delegate:bimodal"" " string_content ") )))) ;) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" identifier = (call_expression "IsStringTrue(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" if (parenthesized_expression "((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0))" ( (binary_expression "(iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" ( (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" * (cast_expression "(long *)(lVar8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x28)" ( (binary_expression "lVar8 + 0x28" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" { (labeled_statement "LAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);" statement_identifier : (expression_statement "lVar12 = GetPreviousImageInList(param_2);" (assignment_expression "lVar12 = GetPreviousImageInList(param_2)" identifier = (call_expression "GetPreviousImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" if (parenthesized_expression "((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))))" ( (binary_expression "(lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" ( (parenthesized_expression "(lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))" ( (comma_expression "lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (assignment_expression "lVar12 = GetNextImageInList(param_2)" identifier = (call_expression "GetNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (binary_expression "lVar12 == 0" identifier == number_literal) && (parenthesized_expression "(iVar5 = IsTaintImage(param_2), iVar5 == 0)" ( (comma_expression "iVar5 = IsTaintImage(param_2), iVar5 == 0" (assignment_expression "iVar5 = IsTaintImage(param_2)" identifier = (call_expression "IsTaintImage(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" { (expression_statement "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" identifier = (call_expression "GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" identifier (argument_list "(param_2 + 0x23f8,lVar3,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" if (parenthesized_expression "((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0))" ( (binary_expression "(lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" ( (comma_expression "lVar12 = GetDelegateMode(lVar12), lVar12 == 0" (assignment_expression "lVar12 = GetDelegateMode(lVar12)" identifier = (call_expression "GetDelegateMode(lVar12)" identifier (argument_list "(lVar12)" ( identifier )))) , (binary_expression "lVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" { (expression_statement "iVar5 = IsPathAccessible(param_2 + 0x13f8);" (assignment_expression "iVar5 = IsPathAccessible(param_2 + 0x13f8)" identifier = (call_expression "IsPathAccessible(param_2 + 0x13f8)" identifier (argument_list "(param_2 + 0x13f8)" ( (binary_expression "param_2 + 0x13f8" identifier + number_literal) )))) ;) (if_statement "if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" { (expression_statement "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);" (call_expression "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000)" identifier (argument_list "(lVar1,param_2 + 0x13f8,0x1000)" ( identifier , (binary_expression "param_2 + 0x13f8" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" identifier = (call_expression "InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" identifier (argument_list "(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" ( identifier , identifier , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" identifier (argument_list "(lVar8)" ( identifier ))) ;) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_00196730;" goto statement_identifier ;) })) })) })) (if_statement "if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00196685;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = GetMagickEncoderSeekableStream(lVar9);" (assignment_expression "uVar6 = GetMagickEncoderSeekableStream(lVar9)" identifier = (call_expression "GetMagickEncoderSeekableStream(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" { (expression_statement "CopyMagickString(local_1048,lVar1,0x1000);" (call_expression "CopyMagickString(local_1048,lVar1,0x1000)" identifier (argument_list "(local_1048,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "uVar6 = OpenBlob(param_1,param_2,4,param_3)" identifier = (call_expression "OpenBlob(param_1,param_2,4,param_3)" identifier (argument_list "(param_1,param_2,4,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "CopyMagickString(lVar1,local_1048,0x1000);" (call_expression "CopyMagickString(lVar1,local_1048,0x1000)" identifier (argument_list "(lVar1,local_1048,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" { (expression_statement "iVar5 = IsBlobSeekable(param_2);" (assignment_expression "iVar5 = IsBlobSeekable(param_2)" identifier = (call_expression "IsBlobSeekable(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" { (expression_statement "*(undefined4 *)(lVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(lVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(lVar8 + 0xc)" * (cast_expression "(undefined4 *)(lVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0xc)" ( (binary_expression "lVar8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" identifier (argument_list "(lVar2,lVar1,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "AcquireUniqueFilename(lVar1);" (call_expression "AcquireUniqueFilename(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) })) (expression_statement "uVar4 = (uint)(iVar5 == 0);" (assignment_expression "uVar4 = (uint)(iVar5 == 0)" identifier = (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )))) ;) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) })) }))) (labeled_statement "LAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);" statement_identifier : (expression_statement "pcVar11 = (code *)GetImageEncoder(lVar9);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(lVar9)" identifier = (cast_expression "(code *)GetImageEncoder(lVar9)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))))) ;)) (if_statement "if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }" { (expression_statement "lVar9 = GetDelegateInfo(0,lVar3,param_3);" (assignment_expression "lVar9 = GetDelegateInfo(0,lVar3,param_3)" identifier = (call_expression "GetDelegateInfo(0,lVar3,param_3)" identifier (argument_list "(0,lVar3,param_3)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }" { (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" identifier = (cast_expression "(int *)AcquireExceptionInfo()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_2050 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,piVar7)" identifier = (call_expression "GetMagickInfo(lVar3,piVar7)" identifier (argument_list "(lVar3,piVar7)" ( identifier , identifier )))) ;) (if_statement "if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" if (parenthesized_expression "(*piVar7 == 499)" ( (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" * identifier) == number_literal) )) (compound_statement "{\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" { (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (if_statement "if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" if (parenthesized_expression "((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0))" ( (binary_expression "(*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x10) == 0)" ( (binary_expression "*(int *)(lVar8 + 0x10) == 0" (pointer_expression "*(int *)(lVar8 + 0x10)" * (cast_expression "(int *)(lVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(local_2050 == 0)" ( (binary_expression "local_2050 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" { (expression_statement "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000)" identifier (argument_list "(lVar3,param_2 + 0x23f8,0x1000)" ( identifier , (binary_expression "param_2 + 0x23f8" identifier + number_literal) , number_literal ))) ;) (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" identifier = (call_expression "GetMagickInfo(lVar3,param_3)" identifier (argument_list "(lVar3,param_3)" ( identifier , identifier )))) ;) })) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" { (expression_statement "GetPathComponent(lVar1,6,local_1048);" (call_expression "GetPathComponent(lVar1,6,local_1048)" identifier (argument_list "(lVar1,6,local_1048)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" if (parenthesized_expression "(local_1048[0] == '\0')" ( (binary_expression "local_1048[0] == '\0'" (subscript_expression "local_1048[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }" { (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" identifier = (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" identifier (argument_list "(param_2 + 0x23f8,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier )))) ;) }) (else_clause "else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" else (compound_statement "{\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" { (expression_statement "local_2050 = GetMagickInfo(local_1048,param_3);" (assignment_expression "local_2050 = GetMagickInfo(local_1048,param_3)" identifier = (call_expression "GetMagickInfo(local_1048,param_3)" identifier (argument_list "(local_1048,param_3)" ( identifier , identifier )))) ;) }))) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" { (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" identifier = (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" identifier (argument_list "(param_2 + 0x23f8,param_3)" ( (binary_expression "param_2 + 0x23f8" identifier + number_literal) , identifier )))) ;) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" identifier = (cast_expression "(code *)GetImageEncoder(local_2050)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageEncoder(local_2050)" identifier (argument_list "(local_2050)" ( identifier ))))) ;) (if_statement "if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" if (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" { (expression_statement "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);" (call_expression "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" identifier (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , number_literal , (string_literal ""NoEncodeDelegateForThisImageFormat"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_001966eb;" goto statement_identifier ;) })) })) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" identifier (argument_list "(*(undefined8 *)(local_2050 + 0x58))" ( (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" * (cast_expression "(undefined8 *)(local_2050 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2050 + 0x58)" ( (binary_expression "local_2050 + 0x58" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" identifier = (call_expression "FUN_001947f4(lVar3,2,param_3)" identifier (argument_list "(lVar3,2,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" { (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" identifier = (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(lVar8,param_2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" identifier = (call_expression "GetMagickEncoderThreadSupport(local_2050)" identifier (argument_list "(local_2050)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" identifier (argument_list "(*(undefined8 *)(local_2050 + 0x58))" ( (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" * (cast_expression "(undefined8 *)(local_2050 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2050 + 0x58)" ( (binary_expression "local_2050 + 0x58" identifier + number_literal) )))) ))) ;) })) }) (else_clause "else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" else (compound_statement "{\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" { (expression_statement "*(undefined1 *)(lVar8 + 0x2270) = 0;" (assignment_expression "*(undefined1 *)(lVar8 + 0x2270) = 0" (pointer_expression "*(undefined1 *)(lVar8 + 0x2270)" * (cast_expression "(undefined1 *)(lVar8 + 0x2270)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x2270)" ( (binary_expression "lVar8 + 0x2270" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" identifier = (call_expression "GetDelegateThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" * (cast_expression "(undefined8 *)(lVar9 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" identifier = (call_expression "InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" identifier (argument_list "(lVar8,param_2,0,lVar3,param_3)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" identifier = (call_expression "GetDelegateThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" * (cast_expression "(undefined8 *)(lVar9 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) ))) ;) })) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" identifier (argument_list "(lVar1,local_2048,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) }) (else_clause "else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" else (compound_statement "{\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" { (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" identifier = (call_expression "GetMagickEncoderThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" { (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x58))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" * (cast_expression "(undefined8 *)(lVar9 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x58)" ( (binary_expression "lVar9 + 0x58" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" identifier = (call_expression "FUN_001947f4(lVar3,2,param_3)" identifier (argument_list "(lVar3,2,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" { (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" identifier = (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(lVar8,param_2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" identifier = (call_expression "GetMagickEncoderThreadSupport(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" { (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" identifier (argument_list "(*(undefined8 *)(lVar9 + 0x58))" ( (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" * (cast_expression "(undefined8 *)(lVar9 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x58)" ( (binary_expression "lVar9 + 0x58" identifier + number_literal) )))) ))) ;) })) }))) (labeled_statement "LAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" statement_identifier : (if_statement "if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" { (expression_statement "uVar6 = OpenBlob(lVar8,param_2,2,param_3);" (assignment_expression "uVar6 = OpenBlob(lVar8,param_2,2,param_3)" identifier = (call_expression "OpenBlob(lVar8,param_2,2,param_3)" identifier (argument_list "(lVar8,param_2,2,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" { (expression_statement "RelinquishUniqueFileResource(lVar2);" (call_expression "RelinquishUniqueFileResource(lVar2)" identifier (argument_list "(lVar2)" ( identifier ))) ;) (expression_statement "uVar6 = ImageToFile(param_2,lVar2,param_3);" (assignment_expression "uVar6 = ImageToFile(param_2,lVar2,param_3)" identifier = (call_expression "ImageToFile(param_2,lVar2,param_3)" identifier (argument_list "(param_2,lVar2,param_3)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "RelinquishUniqueFileResource(lVar1);" (call_expression "RelinquishUniqueFileResource(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" identifier (argument_list "(lVar1,lVar2,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "iVar5 = LocaleCompare(lVar3,"info");" (assignment_expression "iVar5 = LocaleCompare(lVar3,"info")" identifier = (call_expression "LocaleCompare(lVar3,"info")" identifier (argument_list "(lVar3,"info")" ( identifier , (string_literal ""info"" " string_content ") )))) ;) (if_statement "if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" if (parenthesized_expression "((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0))" ( (binary_expression "(iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(lVar8 + 0x218) != 0)" ( (binary_expression "*(int *)(lVar8 + 0x218) != 0" (pointer_expression "*(int *)(lVar8 + 0x218)" * (cast_expression "(int *)(lVar8 + 0x218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x218)" ( (binary_expression "lVar8 + 0x218" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" { (expression_statement "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);" (call_expression "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" identifier (argument_list "(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" ( identifier , (pointer_expression "*(undefined8 *)PTR_stdout_006dafe8" * (cast_expression "(undefined8 *)PTR_stdout_006dafe8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier ))) ;) })) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" identifier (argument_list "(lVar8)" ( identifier ))) ;) (expression_statement "iVar5 = GetBlobError(param_2);" (assignment_expression "iVar5 = GetBlobError(param_2)" identifier = (call_expression "GetBlobError(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" { (expression_statement "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);" (call_expression "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" identifier (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" ( identifier , (string_literal ""MagickCore/constitute.c"" " string_content ") , (string_literal ""WriteImage"" " string_content ") , number_literal , number_literal , (string_literal ""UnableToWriteFile"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "lVar1 = param_2;" (assignment_expression "lVar1 = param_2" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" { (do_statement "do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);" do (compound_statement "{\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      }" { (expression_statement "param_2 = lVar1;" (assignment_expression "param_2 = lVar1" identifier = identifier) ;) (expression_statement "lVar1 = *(long *)(param_2 + 0x3440);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x3440)" identifier = (pointer_expression "*(long *)(param_2 + 0x3440)" * (cast_expression "(long *)(param_2 + 0x3440)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3440)" ( (binary_expression "param_2 + 0x3440" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(param_2 + 0x3440) != 0)" ( (binary_expression "*(long *)(param_2 + 0x3440) != 0" (pointer_expression "*(long *)(param_2 + 0x3440)" * (cast_expression "(long *)(param_2 + 0x3440)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3440)" ( (binary_expression "param_2 + 0x3440" identifier + number_literal) )))) != number_literal) )) ;) })) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (sized_type_specifier long) (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 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 ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 IDENT == 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 , (string_literal " string_content ") )))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (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 ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })))) (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 , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , 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 )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (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 , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }) (else_clause else (compound_statement { (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (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 , LIT , 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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (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 , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != 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 (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint WriteImage(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar6;\n}" (type_identifier "uint") (function_declarator "WriteImage(long param_1,long param_2,long param_3)" (identifier "WriteImage") (parameter_list "(long param_1,long param_2,long param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  long lVar8;\n  long lVar9;\n  undefined8 uVar10;\n  code *pcVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  long local_2050;\n  undefined1 local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }\n  if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }\n  piVar7 = (int *)AcquireExceptionInfo();\n  lVar8 = CloneImageInfo(param_1);\n  lVar1 = param_2 + 0x3f8;\n  lVar2 = lVar8 + 0x2270;\n  CopyMagickString(lVar2,lVar1,0x1000);\n  SetImageInfo(lVar8,1,piVar7);\n  if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }\n  CopyMagickString(local_2048,lVar1,0x1000);\n  CopyMagickString(lVar1,lVar2,0x1000);\n  lVar3 = lVar8 + 0x270;\n  lVar9 = GetMagickInfo(lVar3,piVar7);\n  if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }\n  DestroyExceptionInfo(piVar7);\n  if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }\nLAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);\n  if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }\nLAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }\n  iVar5 = LocaleCompare(lVar3,"info");\n  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }\n  DestroyImageInfo(lVar8);\n  iVar5 = GetBlobError(param_2);\n  if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }\nLAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar6;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "long local_2050;" (sized_type_specifier "long" (long "long")) (identifier "local_2050") (; ";")) (declaration "undefined1 local_2048 [4096];" (type_identifier "undefined1") (array_declarator "local_2048 [4096]" (identifier "local_2048") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "char local_1048 [4104];" (primitive_type "char") (array_declarator "local_1048 [4104]" (identifier "local_1048") ([ "[") (number_literal "4104") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\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 != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");" (call_expression "__assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" (identifier "__assert_fail") (argument_list "("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage")" (( "(") (string_literal ""image_info != (ImageInfo *) NULL"" (" """) (string_content "image_info != (ImageInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (number_literal "0x446") (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" (* "*") (cast_expression "(long *)(param_1 + 0x3278)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3278)" (( "(") (binary_expression "param_1 + 0x3278" (identifier "param_1") (+ "+") (number_literal "0x3278")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,\n                  "WriteImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (number_literal "0x447") (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\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("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (number_literal "0x448") (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x3418) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x3418) != 0" (pointer_expression "*(int *)(param_2 + 0x3418)" (* "*") (cast_expression "(int *)(param_2 + 0x3418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3418)" (( "(") (binary_expression "param_2 + 0x3418" (identifier "param_2") (+ "+") (number_literal "0x3418")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/constitute.c","WriteImage",0x44a,&DAT_0041fe36,\n                   param_1 + 0x2270)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) (, ",") (number_literal "0x44a") (, ",") (pointer_expression "&DAT_0041fe36" (& "&") (identifier "DAT_0041fe36")) (, ",") (binary_expression "param_1 + 0x2270" (identifier "param_1") (+ "+") (number_literal "0x2270")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" (* "*") (cast_expression "(long *)(param_2 + 0x3450)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3450)" (( "(") (binary_expression "param_2 + 0x3450" (identifier "param_2") (+ "+") (number_literal "0x3450")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,\n                  "WriteImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (number_literal "0x44c") (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 );" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"\n                 )" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (number_literal "0x44d") (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" (identifier "piVar7") (= "=") (cast_expression "(int *)AcquireExceptionInfo()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireExceptionInfo()" (identifier "AcquireExceptionInfo") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "lVar8 = CloneImageInfo(param_1);" (assignment_expression "lVar8 = CloneImageInfo(param_1)" (identifier "lVar8") (= "=") (call_expression "CloneImageInfo(param_1)" (identifier "CloneImageInfo") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "lVar1 = param_2 + 0x3f8;" (assignment_expression "lVar1 = param_2 + 0x3f8" (identifier "lVar1") (= "=") (binary_expression "param_2 + 0x3f8" (identifier "param_2") (+ "+") (number_literal "0x3f8"))) (; ";")) (expression_statement "lVar2 = lVar8 + 0x2270;" (assignment_expression "lVar2 = lVar8 + 0x2270" (identifier "lVar2") (= "=") (binary_expression "lVar8 + 0x2270" (identifier "lVar8") (+ "+") (number_literal "0x2270"))) (; ";")) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar2,lVar1,0x1000)" (( "(") (identifier "lVar2") (, ",") (identifier "lVar1") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "SetImageInfo(lVar8,1,piVar7);" (call_expression "SetImageInfo(lVar8,1,piVar7)" (identifier "SetImageInfo") (argument_list "(lVar8,1,piVar7)" (( "(") (identifier "lVar8") (, ",") (number_literal "1") (, ",") (identifier "piVar7") () ")"))) (; ";")) (if_statement "if (*(char *)(lVar8 + 0x270) == '\0') {\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x270) == '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x270) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x270)" (* "*") (cast_expression "(char *)(lVar8 + 0x270)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x270)" (( "(") (binary_expression "lVar8 + 0x270" (identifier "lVar8") (+ "+") (number_literal "0x270")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);\n  }" ({ "{") (expression_statement "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar8 + 0x270,param_2 + 0x23f8,0x1000)" (( "(") (binary_expression "lVar8 + 0x270" (identifier "lVar8") (+ "+") (number_literal "0x270")) (, ",") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (} "}"))) (expression_statement "CopyMagickString(local_2048,lVar1,0x1000);" (call_expression "CopyMagickString(local_2048,lVar1,0x1000)" (identifier "CopyMagickString") (argument_list "(local_2048,lVar1,0x1000)" (( "(") (identifier "local_2048") (, ",") (identifier "lVar1") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,lVar2,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "lVar2") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "lVar3 = lVar8 + 0x270;" (assignment_expression "lVar3 = lVar8 + 0x270" (identifier "lVar3") (= "=") (binary_expression "lVar8 + 0x270" (identifier "lVar8") (+ "+") (number_literal "0x270"))) (; ";")) (expression_statement "lVar9 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,piVar7)" (identifier "lVar9") (= "=") (call_expression "GetMagickInfo(lVar3,piVar7)" (identifier "GetMagickInfo") (argument_list "(lVar3,piVar7)" (( "(") (identifier "lVar3") (, ",") (identifier "piVar7") () ")")))) (; ";")) (if_statement "if (*piVar7 == 499) {\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" (if "if") (parenthesized_expression "(*piVar7 == 499)" (( "(") (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (== "==") (number_literal "499")) () ")")) (compound_statement "{\n    lVar9 = GetMagickInfo(lVar3,param_3);\n  }" ({ "{") (expression_statement "lVar9 = GetMagickInfo(lVar3,param_3);" (assignment_expression "lVar9 = GetMagickInfo(lVar3,param_3)" (identifier "lVar9") (= "=") (call_expression "GetMagickInfo(lVar3,param_3)" (identifier "GetMagickInfo") (argument_list "(lVar3,param_3)" (( "(") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" (identifier "DestroyExceptionInfo") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (if_statement "if (lVar9 == 0) {\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }\n  else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n  }" ({ "{") (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" (identifier "FUN_00267330") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" (identifier "DisassociateImageStream") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" (identifier "uVar10") (= "=") (call_expression "GetImageOption(param_1,"delegate:bimodal")" (identifier "GetImageOption") (argument_list "(param_1,"delegate:bimodal")" (( "(") (identifier "param_1") (, ",") (string_literal ""delegate:bimodal"" (" """) (string_content "delegate:bimodal") (" """)) () ")")))) (; ";")) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" (identifier "iVar5") (= "=") (call_expression "IsStringTrue(uVar10)" (identifier "IsStringTrue") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      uVar4 = 0;\n      uVar6 = 0;\n    }\n    else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = 0;\n      uVar6 = 0;\n    }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" (else "else") (compound_statement "{\n      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;\n      uVar4 = 0;\n      uVar6 = 0;\n    }" ({ "{") (if_statement "if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;" (if "if") (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" (* "*") (cast_expression "(long *)(lVar8 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x28)" (( "(") (binary_expression "lVar8 + 0x28" (identifier "lVar8") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00196dd4;" (goto "goto") (statement_identifier "LAB_00196dd4") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar5 = GetMagickEndianSupport(lVar9);\n    if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }\n    FUN_00267330(param_2);\n    DisassociateImageStream(param_2);\n    uVar10 = GetImageOption(param_1,"delegate:bimodal");\n    iVar5 = IsStringTrue(uVar10);\n    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }\n    uVar6 = GetMagickEncoderSeekableStream(lVar9);\n    uVar4 = uVar6;\n    if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }\n  }" ({ "{") (expression_statement "iVar5 = GetMagickEndianSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEndianSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetMagickEndianSupport(lVar9)" (identifier "GetMagickEndianSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }\n    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 0;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2ac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2ac)" (( "(") (binary_expression "param_2 + 0x2ac" (identifier "param_2") (+ "+") (number_literal "0x2ac")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" (else "else") (if_statement "if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)" (( "(") (comma_expression "iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0" (assignment_expression "iVar5 = GetMagickRawSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetMagickRawSupport(lVar9)" (identifier "GetMagickRawSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 *)(param_2 + 0x2ac) = 1;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_2 + 0x2ac) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x2ac) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x2ac)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2ac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2ac)" (( "(") (binary_expression "param_2 + 0x2ac" (identifier "param_2") (+ "+") (number_literal "0x2ac")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))))) (expression_statement "FUN_00267330(param_2);" (call_expression "FUN_00267330(param_2)" (identifier "FUN_00267330") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "DisassociateImageStream(param_2);" (call_expression "DisassociateImageStream(param_2)" (identifier "DisassociateImageStream") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar10 = GetImageOption(param_1,"delegate:bimodal");" (assignment_expression "uVar10 = GetImageOption(param_1,"delegate:bimodal")" (identifier "uVar10") (= "=") (call_expression "GetImageOption(param_1,"delegate:bimodal")" (identifier "GetImageOption") (argument_list "(param_1,"delegate:bimodal")" (( "(") (identifier "param_1") (, ",") (string_literal ""delegate:bimodal"" (" """) (string_content "delegate:bimodal") (" """)) () ")")))) (; ";")) (expression_statement "iVar5 = IsStringTrue(uVar10);" (assignment_expression "iVar5 = IsStringTrue(uVar10)" (identifier "iVar5") (= "=") (call_expression "IsStringTrue(uVar10)" (identifier "IsStringTrue") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" (if "if") (parenthesized_expression "((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0))" (( "(") (binary_expression "(iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar8 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(lVar8 + 0x28) == 0" (pointer_expression "*(long *)(lVar8 + 0x28)" (* "*") (cast_expression "(long *)(lVar8 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x28)" (( "(") (binary_expression "lVar8 + 0x28" (identifier "lVar8") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);\n      if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }\n      if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }\n    }" ({ "{") (labeled_statement "LAB_00196dd4:\n      lVar12 = GetPreviousImageInList(param_2);" (statement_identifier "LAB_00196dd4") (: ":") (expression_statement "lVar12 = GetPreviousImageInList(param_2);" (assignment_expression "lVar12 = GetPreviousImageInList(param_2)" (identifier "lVar12") (= "=") (call_expression "GetPreviousImageInList(param_2)" (identifier "GetPreviousImageInList") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if ((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))))" (( "(") (binary_expression "(lVar12 == 0) &&\n         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))" (( "(") (parenthesized_expression "(lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0))" (( "(") (comma_expression "lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (assignment_expression "lVar12 = GetNextImageInList(param_2)" (identifier "lVar12") (= "=") (call_expression "GetNextImageInList(param_2)" (identifier "GetNextImageInList") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "lVar12 == 0 &&\n          (iVar5 = IsTaintImage(param_2), iVar5 == 0)" (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar5 = IsTaintImage(param_2), iVar5 == 0)" (( "(") (comma_expression "iVar5 = IsTaintImage(param_2), iVar5 == 0" (assignment_expression "iVar5 = IsTaintImage(param_2)" (identifier "iVar5") (= "=") (call_expression "IsTaintImage(param_2)" (identifier "IsTaintImage") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);\n        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" (identifier "lVar12") (= "=") (call_expression "GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3)" (identifier "GetDelegateInfo") (argument_list "(param_2 + 0x23f8,lVar3,param_3)" (( "(") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" (if "if") (parenthesized_expression "((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0))" (( "(") (binary_expression "(lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar12 = GetDelegateMode(lVar12), lVar12 == 0)" (( "(") (comma_expression "lVar12 = GetDelegateMode(lVar12), lVar12 == 0" (assignment_expression "lVar12 = GetDelegateMode(lVar12)" (identifier "lVar12") (= "=") (call_expression "GetDelegateMode(lVar12)" (identifier "GetDelegateMode") (argument_list "(lVar12)" (( "(") (identifier "lVar12") () ")")))) (, ",") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          iVar5 = IsPathAccessible(param_2 + 0x13f8);\n          if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }\n        }" ({ "{") (expression_statement "iVar5 = IsPathAccessible(param_2 + 0x13f8);" (assignment_expression "iVar5 = IsPathAccessible(param_2 + 0x13f8)" (identifier "iVar5") (= "=") (call_expression "IsPathAccessible(param_2 + 0x13f8)" (identifier "IsPathAccessible") (argument_list "(param_2 + 0x13f8)" (( "(") (binary_expression "param_2 + 0x13f8" (identifier "param_2") (+ "+") (number_literal "0x13f8")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);\n            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);\n            DestroyImageInfo(lVar8);\n            CopyMagickString(lVar1,local_2048,0x1000);\n            goto LAB_00196730;\n          }" ({ "{") (expression_statement "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);" (call_expression "CopyMagickString(lVar1,param_2 + 0x13f8,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,param_2 + 0x13f8,0x1000)" (( "(") (identifier "lVar1") (, ",") (binary_expression "param_2 + 0x13f8" (identifier "param_2") (+ "+") (number_literal "0x13f8")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" (identifier "uVar6") (= "=") (call_expression "InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" (identifier "InvokeDelegate") (argument_list "(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3)" (( "(") (identifier "lVar8") (, ",") (identifier "param_2") (, ",") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" (identifier "DestroyImageInfo") (argument_list "(lVar8)" (( "(") (identifier "lVar8") () ")"))) (; ";")) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,local_2048,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "local_2048") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (goto_statement "goto LAB_00196730;" (goto "goto") (statement_identifier "LAB_00196730") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (lVar9 == 0) {\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = 0;\n        uVar6 = 0;\n        goto LAB_00196685;\n      }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00196685;" (goto "goto") (statement_identifier "LAB_00196685") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar6 = GetMagickEncoderSeekableStream(lVar9);" (assignment_expression "uVar6 = GetMagickEncoderSeekableStream(lVar9)" (identifier "uVar6") (= "=") (call_expression "GetMagickEncoderSeekableStream(lVar9)" (identifier "GetMagickEncoderSeekableStream") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" (identifier "uVar4") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar6 != 0) {\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      CopyMagickString(local_1048,lVar1,0x1000);\n      uVar6 = OpenBlob(param_1,param_2,4,param_3);\n      CopyMagickString(lVar1,local_1048,0x1000);\n      uVar4 = uVar6;\n      if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }\n    }" ({ "{") (expression_statement "CopyMagickString(local_1048,lVar1,0x1000);" (call_expression "CopyMagickString(local_1048,lVar1,0x1000)" (identifier "CopyMagickString") (argument_list "(local_1048,lVar1,0x1000)" (( "(") (identifier "local_1048") (, ",") (identifier "lVar1") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "uVar6 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "uVar6 = OpenBlob(param_1,param_2,4,param_3)" (identifier "uVar6") (= "=") (call_expression "OpenBlob(param_1,param_2,4,param_3)" (identifier "OpenBlob") (argument_list "(param_1,param_2,4,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "4") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "CopyMagickString(lVar1,local_1048,0x1000);" (call_expression "CopyMagickString(lVar1,local_1048,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,local_1048,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "local_1048") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "uVar4 = uVar6;" (assignment_expression "uVar4 = uVar6" (identifier "uVar4") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar6 != 0) {\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = IsBlobSeekable(param_2);\n        if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }\n        uVar4 = (uint)(iVar5 == 0);\n        CloseBlob(param_2);\n      }" ({ "{") (expression_statement "iVar5 = IsBlobSeekable(param_2);" (assignment_expression "iVar5 = IsBlobSeekable(param_2)" (identifier "iVar5") (= "=") (call_expression "IsBlobSeekable(param_2)" (identifier "IsBlobSeekable") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(lVar8 + 0xc) = 1;\n          CopyMagickString(lVar2,lVar1,0x1000);\n          AcquireUniqueFilename(lVar1);\n        }" ({ "{") (expression_statement "*(undefined4 *)(lVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(lVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(lVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)(lVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0xc)" (( "(") (binary_expression "lVar8 + 0xc" (identifier "lVar8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "CopyMagickString(lVar2,lVar1,0x1000);" (call_expression "CopyMagickString(lVar2,lVar1,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar2,lVar1,0x1000)" (( "(") (identifier "lVar2") (, ",") (identifier "lVar1") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "AcquireUniqueFilename(lVar1);" (call_expression "AcquireUniqueFilename(lVar1)" (identifier "AcquireUniqueFilename") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = (uint)(iVar5 == 0);" (assignment_expression "uVar4 = (uint)(iVar5 == 0)" (identifier "uVar4") (= "=") (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00196685:\n  pcVar11 = (code *)GetImageEncoder(lVar9);" (statement_identifier "LAB_00196685") (: ":") (expression_statement "pcVar11 = (code *)GetImageEncoder(lVar9);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(lVar9)" (identifier "pcVar11") (= "=") (cast_expression "(code *)GetImageEncoder(lVar9)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetImageEncoder(lVar9)" (identifier "GetImageEncoder") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")"))))) (; ";"))) (if_statement "if (pcVar11 == (code *)0x0) {\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }\n  else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" (if "if") (parenthesized_expression "(pcVar11 == (code *)0x0)" (( "(") (binary_expression "pcVar11 == (code *)0x0" (identifier "pcVar11") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    lVar9 = GetDelegateInfo(0,lVar3,param_3);\n    if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }\n  }" ({ "{") (expression_statement "lVar9 = GetDelegateInfo(0,lVar3,param_3);" (assignment_expression "lVar9 = GetDelegateInfo(0,lVar3,param_3)" (identifier "lVar9") (= "=") (call_expression "GetDelegateInfo(0,lVar3,param_3)" (identifier "GetDelegateInfo") (argument_list "(0,lVar3,param_3)" (( "(") (number_literal "0") (, ",") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar9 == 0) {\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }\n    else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar7 = (int *)AcquireExceptionInfo();\n      local_2050 = GetMagickInfo(lVar3,piVar7);\n      if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      DestroyExceptionInfo(piVar7);\n      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }\n      pcVar11 = (code *)GetImageEncoder(local_2050);\n      if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n      uVar6 = FUN_001947f4(lVar3,2,param_3);\n      if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }\n      iVar5 = GetMagickEncoderThreadSupport(local_2050);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }\n    }" ({ "{") (expression_statement "piVar7 = (int *)AcquireExceptionInfo();" (assignment_expression "piVar7 = (int *)AcquireExceptionInfo()" (identifier "piVar7") (= "=") (cast_expression "(int *)AcquireExceptionInfo()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireExceptionInfo()" (identifier "AcquireExceptionInfo") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_2050 = GetMagickInfo(lVar3,piVar7);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,piVar7)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(lVar3,piVar7)" (identifier "GetMagickInfo") (argument_list "(lVar3,piVar7)" (( "(") (identifier "lVar3") (, ",") (identifier "piVar7") () ")")))) (; ";")) (if_statement "if (*piVar7 == 499) {\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" (if "if") (parenthesized_expression "(*piVar7 == 499)" (( "(") (binary_expression "*piVar7 == 499" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (== "==") (number_literal "499")) () ")")) (compound_statement "{\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" ({ "{") (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(lVar3,param_3)" (identifier "GetMagickInfo") (argument_list "(lVar3,param_3)" (( "(") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "DestroyExceptionInfo(piVar7);" (call_expression "DestroyExceptionInfo(piVar7)" (identifier "DestroyExceptionInfo") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (if_statement "if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" (if "if") (parenthesized_expression "((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0))" (( "(") (binary_expression "(*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(lVar8 + 0x10) == 0" (pointer_expression "*(int *)(lVar8 + 0x10)" (* "*") (cast_expression "(int *)(lVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10)" (( "(") (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_2050 == 0)" (( "(") (binary_expression "local_2050 == 0" (identifier "local_2050") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);\n        local_2050 = GetMagickInfo(lVar3,param_3);\n      }" ({ "{") (expression_statement "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);" (call_expression "CopyMagickString(lVar3,param_2 + 0x23f8,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar3,param_2 + 0x23f8,0x1000)" (( "(") (identifier "lVar3") (, ",") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "local_2050 = GetMagickInfo(lVar3,param_3);" (assignment_expression "local_2050 = GetMagickInfo(lVar3,param_3)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(lVar3,param_3)" (identifier "GetMagickInfo") (argument_list "(lVar3,param_3)" (( "(") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" (identifier "pcVar11") (= "=") (cast_expression "(code *)GetImageEncoder(local_2050)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetImageEncoder(local_2050)" (identifier "GetImageEncoder") (argument_list "(local_2050)" (( "(") (identifier "local_2050") () ")"))))) (; ";")) (if_statement "if (pcVar11 == (code *)0x0) {\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pcVar11 == (code *)0x0)" (( "(") (binary_expression "pcVar11 == (code *)0x0" (identifier "pcVar11") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        GetPathComponent(lVar1,6,local_1048);\n        if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }\n        CopyMagickString(lVar1,local_2048,0x1000);\n        pcVar11 = (code *)GetImageEncoder(local_2050);\n        if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }\n      }" ({ "{") (expression_statement "GetPathComponent(lVar1,6,local_1048);" (call_expression "GetPathComponent(lVar1,6,local_1048)" (identifier "GetPathComponent") (argument_list "(lVar1,6,local_1048)" (( "(") (identifier "lVar1") (, ",") (number_literal "6") (, ",") (identifier "local_1048") () ")"))) (; ";")) (if_statement "if (local_1048[0] == '\0') {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }\n        else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" (if "if") (parenthesized_expression "(local_1048[0] == '\0')" (( "(") (binary_expression "local_1048[0] == '\0'" (subscript_expression "local_1048[0]" (identifier "local_1048") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n        }" ({ "{") (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" (identifier "GetMagickInfo") (argument_list "(param_2 + 0x23f8,param_3)" (( "(") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" (else "else") (compound_statement "{\n          local_2050 = GetMagickInfo(local_1048,param_3);\n        }" ({ "{") (expression_statement "local_2050 = GetMagickInfo(local_1048,param_3);" (assignment_expression "local_2050 = GetMagickInfo(local_1048,param_3)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(local_1048,param_3)" (identifier "GetMagickInfo") (argument_list "(local_1048,param_3)" (( "(") (identifier "local_1048") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}")))) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,local_2048,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "local_2048") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" (identifier "pcVar11") (= "=") (cast_expression "(code *)GetImageEncoder(local_2050)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetImageEncoder(local_2050)" (identifier "GetImageEncoder") (argument_list "(local_2050)" (( "(") (identifier "local_2050") () ")"))))) (; ";")) (if_statement "if (pcVar11 == (code *)0x0) {\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" (if "if") (parenthesized_expression "(pcVar11 == (code *)0x0)" (( "(") (binary_expression "pcVar11 == (code *)0x0" (identifier "pcVar11") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);\n          pcVar11 = (code *)GetImageEncoder(local_2050);\n          if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }\n        }" ({ "{") (expression_statement "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);" (assignment_expression "local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3)" (identifier "local_2050") (= "=") (call_expression "GetMagickInfo(param_2 + 0x23f8,param_3)" (identifier "GetMagickInfo") (argument_list "(param_2 + 0x23f8,param_3)" (( "(") (binary_expression "param_2 + 0x23f8" (identifier "param_2") (+ "+") (number_literal "0x23f8")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pcVar11 = (code *)GetImageEncoder(local_2050);" (assignment_expression "pcVar11 = (code *)GetImageEncoder(local_2050)" (identifier "pcVar11") (= "=") (cast_expression "(code *)GetImageEncoder(local_2050)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetImageEncoder(local_2050)" (identifier "GetImageEncoder") (argument_list "(local_2050)" (( "(") (identifier "local_2050") () ")"))))) (; ";")) (if_statement "if (pcVar11 == (code *)0x0) {\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" (if "if") (parenthesized_expression "(pcVar11 == (code *)0x0)" (( "(") (binary_expression "pcVar11 == (code *)0x0" (identifier "pcVar11") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);\n            goto LAB_001966eb;\n          }" ({ "{") (expression_statement "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);" (call_expression "ThrowMagickException\n                      (param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" (identifier "ThrowMagickException") (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x4e4,0x1a4,\n                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3)" (( "(") (identifier "param_3") (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) (, ",") (number_literal "0x4e4") (, ",") (number_literal "0x1a4") (, ",") (string_literal ""NoEncodeDelegateForThisImageFormat"" (" """) (string_content "NoEncodeDelegateForThisImageFormat") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (identifier "lVar3") () ")"))) (; ";")) (goto_statement "goto LAB_001966eb;" (goto "goto") (statement_identifier "LAB_001966eb") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" (identifier "iVar5") (= "=") (call_expression "GetMagickEncoderThreadSupport(local_2050)" (identifier "GetMagickEncoderThreadSupport") (argument_list "(local_2050)" (( "(") (identifier "local_2050") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" ({ "{") (expression_statement "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" (identifier "LockSemaphoreInfo") (argument_list "(*(undefined8 *)(local_2050 + 0x58))" (( "(") (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" (* "*") (cast_expression "(undefined8 *)(local_2050 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2050 + 0x58)" (( "(") (binary_expression "local_2050 + 0x58" (identifier "local_2050") (+ "+") (number_literal "0x58")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" (identifier "uVar6") (= "=") (call_expression "FUN_001947f4(lVar3,2,param_3)" (identifier "FUN_001947f4") (argument_list "(lVar3,2,param_3)" (( "(") (identifier "lVar3") (, ",") (number_literal "2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar6 != 0) {\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n      }" ({ "{") (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" (identifier "uVar6") (= "=") (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(lVar8,param_2,param_3)" (( "(") (identifier "lVar8") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(local_2050);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(local_2050)" (identifier "iVar5") (= "=") (call_expression "GetMagickEncoderThreadSupport(local_2050)" (identifier "GetMagickEncoderThreadSupport") (argument_list "(local_2050)" (( "(") (identifier "local_2050") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));\n      }" ({ "{") (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58))" (identifier "UnlockSemaphoreInfo") (argument_list "(*(undefined8 *)(local_2050 + 0x58))" (( "(") (pointer_expression "*(undefined8 *)(local_2050 + 0x58)" (* "*") (cast_expression "(undefined8 *)(local_2050 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2050 + 0x58)" (( "(") (binary_expression "local_2050 + 0x58" (identifier "local_2050") (+ "+") (number_literal "0x58")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" (else "else") (compound_statement "{\n      *(undefined1 *)(lVar8 + 0x2270) = 0;\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);\n      iVar5 = GetDelegateThreadSupport(lVar9);\n      if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }\n      CopyMagickString(lVar1,local_2048,0x1000);\n    }" ({ "{") (expression_statement "*(undefined1 *)(lVar8 + 0x2270) = 0;" (assignment_expression "*(undefined1 *)(lVar8 + 0x2270) = 0" (pointer_expression "*(undefined1 *)(lVar8 + 0x2270)" (* "*") (cast_expression "(undefined1 *)(lVar8 + 0x2270)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x2270)" (( "(") (binary_expression "lVar8 + 0x2270" (identifier "lVar8") (+ "+") (number_literal "0x2270")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetDelegateThreadSupport(lVar9)" (identifier "GetDelegateThreadSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" ({ "{") (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" (identifier "LockSemaphoreInfo") (argument_list "(*(undefined8 *)(lVar9 + 0x38))" (( "(") (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x38)" (( "(") (binary_expression "lVar9 + 0x38" (identifier "lVar9") (+ "+") (number_literal "0x38")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);" (assignment_expression "uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" (identifier "uVar6") (= "=") (call_expression "InvokeDelegate(lVar8,param_2,0,lVar3,param_3)" (identifier "InvokeDelegate") (argument_list "(lVar8,param_2,0,lVar3,param_3)" (( "(") (identifier "lVar8") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "lVar3") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar5 = GetDelegateThreadSupport(lVar9);" (assignment_expression "iVar5 = GetDelegateThreadSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetDelegateThreadSupport(lVar9)" (identifier "GetDelegateThreadSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));\n      }" ({ "{") (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38))" (identifier "UnlockSemaphoreInfo") (argument_list "(*(undefined8 *)(lVar9 + 0x38))" (( "(") (pointer_expression "*(undefined8 *)(lVar9 + 0x38)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x38)" (( "(") (binary_expression "lVar9 + 0x38" (identifier "lVar9") (+ "+") (number_literal "0x38")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "CopyMagickString(lVar1,local_2048,0x1000);" (call_expression "CopyMagickString(lVar1,local_2048,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,local_2048,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "local_2048") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" (else "else") (compound_statement "{\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n    uVar6 = FUN_001947f4(lVar3,2,param_3);\n    if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }\n    iVar5 = GetMagickEncoderThreadSupport(lVar9);\n    if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }\n  }" ({ "{") (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetMagickEncoderThreadSupport(lVar9)" (identifier "GetMagickEncoderThreadSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" ({ "{") (expression_statement "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" (identifier "LockSemaphoreInfo") (argument_list "(*(undefined8 *)(lVar9 + 0x58))" (( "(") (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x58)" (( "(") (binary_expression "lVar9 + 0x58" (identifier "lVar9") (+ "+") (number_literal "0x58")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_001947f4(lVar3,2,param_3);" (assignment_expression "uVar6 = FUN_001947f4(lVar3,2,param_3)" (identifier "uVar6") (= "=") (call_expression "FUN_001947f4(lVar3,2,param_3)" (identifier "FUN_001947f4") (argument_list "(lVar3,2,param_3)" (( "(") (identifier "lVar3") (, ",") (number_literal "2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar6 != 0) {\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = (*pcVar11)(lVar8,param_2,param_3);\n    }" ({ "{") (expression_statement "uVar6 = (*pcVar11)(lVar8,param_2,param_3);" (assignment_expression "uVar6 = (*pcVar11)(lVar8,param_2,param_3)" (identifier "uVar6") (= "=") (call_expression "(*pcVar11)(lVar8,param_2,param_3)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(lVar8,param_2,param_3)" (( "(") (identifier "lVar8") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar5 = GetMagickEncoderThreadSupport(lVar9);" (assignment_expression "iVar5 = GetMagickEncoderThreadSupport(lVar9)" (identifier "iVar5") (= "=") (call_expression "GetMagickEncoderThreadSupport(lVar9)" (identifier "GetMagickEncoderThreadSupport") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));\n    }" ({ "{") (expression_statement "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));" (call_expression "UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58))" (identifier "UnlockSemaphoreInfo") (argument_list "(*(undefined8 *)(lVar9 + 0x58))" (( "(") (pointer_expression "*(undefined8 *)(lVar9 + 0x58)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x58)" (( "(") (binary_expression "lVar9 + 0x58" (identifier "lVar9") (+ "+") (number_literal "0x58")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_001966eb:\n  if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" (statement_identifier "LAB_001966eb") (: ":") (if_statement "if (uVar4 != 0) {\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = OpenBlob(lVar8,param_2,2,param_3);\n    if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }\n    CloseBlob(param_2);\n    RelinquishUniqueFileResource(lVar1);\n    CopyMagickString(lVar1,lVar2,0x1000);\n  }" ({ "{") (expression_statement "uVar6 = OpenBlob(lVar8,param_2,2,param_3);" (assignment_expression "uVar6 = OpenBlob(lVar8,param_2,2,param_3)" (identifier "uVar6") (= "=") (call_expression "OpenBlob(lVar8,param_2,2,param_3)" (identifier "OpenBlob") (argument_list "(lVar8,param_2,2,param_3)" (( "(") (identifier "lVar8") (, ",") (identifier "param_2") (, ",") (number_literal "2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar6 != 0) {\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      RelinquishUniqueFileResource(lVar2);\n      uVar6 = ImageToFile(param_2,lVar2,param_3);\n    }" ({ "{") (expression_statement "RelinquishUniqueFileResource(lVar2);" (call_expression "RelinquishUniqueFileResource(lVar2)" (identifier "RelinquishUniqueFileResource") (argument_list "(lVar2)" (( "(") (identifier "lVar2") () ")"))) (; ";")) (expression_statement "uVar6 = ImageToFile(param_2,lVar2,param_3);" (assignment_expression "uVar6 = ImageToFile(param_2,lVar2,param_3)" (identifier "uVar6") (= "=") (call_expression "ImageToFile(param_2,lVar2,param_3)" (identifier "ImageToFile") (argument_list "(param_2,lVar2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "lVar2") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "RelinquishUniqueFileResource(lVar1);" (call_expression "RelinquishUniqueFileResource(lVar1)" (identifier "RelinquishUniqueFileResource") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")"))) (; ";")) (expression_statement "CopyMagickString(lVar1,lVar2,0x1000);" (call_expression "CopyMagickString(lVar1,lVar2,0x1000)" (identifier "CopyMagickString") (argument_list "(lVar1,lVar2,0x1000)" (( "(") (identifier "lVar1") (, ",") (identifier "lVar2") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar5 = LocaleCompare(lVar3,"info");" (assignment_expression "iVar5 = LocaleCompare(lVar3,"info")" (identifier "iVar5") (= "=") (call_expression "LocaleCompare(lVar3,"info")" (identifier "LocaleCompare") (argument_list "(lVar3,"info")" (( "(") (identifier "lVar3") (, ",") (string_literal ""info"" (" """) (string_content "info") (" """)) () ")")))) (; ";")) (if_statement "if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" (if "if") (parenthesized_expression "((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0))" (( "(") (binary_expression "(iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(lVar8 + 0x218) != 0)" (( "(") (binary_expression "*(int *)(lVar8 + 0x218) != 0" (pointer_expression "*(int *)(lVar8 + 0x218)" (* "*") (cast_expression "(int *)(lVar8 + 0x218)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x218)" (( "(") (binary_expression "lVar8 + 0x218" (identifier "lVar8") (+ "+") (number_literal "0x218")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);\n  }" ({ "{") (expression_statement "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);" (call_expression "IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" (identifier "IdentifyImage") (argument_list "(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3)" (( "(") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)PTR_stdout_006dafe8" (* "*") (cast_expression "(undefined8 *)PTR_stdout_006dafe8" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_006dafe8"))) (, ",") (number_literal "0") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "DestroyImageInfo(lVar8);" (call_expression "DestroyImageInfo(lVar8)" (identifier "DestroyImageInfo") (argument_list "(lVar8)" (( "(") (identifier "lVar8") () ")"))) (; ";")) (expression_statement "iVar5 = GetBlobError(param_2);" (assignment_expression "iVar5 = GetBlobError(param_2)" (identifier "iVar5") (= "=") (call_expression "GetBlobError(param_2)" (identifier "GetBlobError") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);\n    lVar1 = param_2;\n    if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }\n    CloseBlob(param_2);\n    uVar6 = 0;\n  }" ({ "{") (expression_statement "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1);" (call_expression "ThrowMagickException\n              (param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" (identifier "ThrowMagickException") (argument_list "(param_3,"MagickCore/constitute.c","WriteImage",0x50d,0x1ae,"UnableToWriteFile",\n               "`%s\'",lVar1)" (( "(") (identifier "param_3") (, ",") (string_literal ""MagickCore/constitute.c"" (" """) (string_content "MagickCore/constitute.c") (" """)) (, ",") (string_literal ""WriteImage"" (" """) (string_content "WriteImage") (" """)) (, ",") (number_literal "0x50d") (, ",") (number_literal "0x1ae") (, ",") (string_literal ""UnableToWriteFile"" (" """) (string_content "UnableToWriteFile") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (identifier "lVar1") () ")"))) (; ";")) (expression_statement "lVar1 = param_2;" (assignment_expression "lVar1 = param_2" (identifier "lVar1") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);\n    }" ({ "{") (do_statement "do {\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      } while (*(long *)(param_2 + 0x3440) != 0);" (do "do") (compound_statement "{\n        param_2 = lVar1;\n        lVar1 = *(long *)(param_2 + 0x3440);\n      }" ({ "{") (expression_statement "param_2 = lVar1;" (assignment_expression "param_2 = lVar1" (identifier "param_2") (= "=") (identifier "lVar1")) (; ";")) (expression_statement "lVar1 = *(long *)(param_2 + 0x3440);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x3440)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_2 + 0x3440)" (* "*") (cast_expression "(long *)(param_2 + 0x3440)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3440)" (( "(") (binary_expression "param_2 + 0x3440" (identifier "param_2") (+ "+") (number_literal "0x3440")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(param_2 + 0x3440) != 0)" (( "(") (binary_expression "*(long *)(param_2 + 0x3440) != 0" (pointer_expression "*(long *)(param_2 + 0x3440)" (* "*") (cast_expression "(long *)(param_2 + 0x3440)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3440)" (( "(") (binary_expression "param_2 + 0x3440" (identifier "param_2") (+ "+") (number_literal "0x3440")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_00196730:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_00196730") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))

/* 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 "PolicyRights": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

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

{
  char *source;
  char *destination;
  char *name;
  long var_58;
  type_1 var_20;
  type_1 var_49;
  int var_55;
  type_1 var_38;
  type_4 *pEVar6;
  type_2 *image_info_00;
  type_5 *var_15;
  char *pcVar7;
  type_6 *var_42;
  ssize_t var_31;
  type_7 *var_29;
  type_3 *var_25;
  long var_1;
  type_5 *var_43;
  char filename [4096];
  char image_filename [4096];
  
  var_58 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"WriteImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,
                  "WriteImage");
  }
  if (var_4 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","MagickCore/constitute.c",0x448,"WriteImage");
  }
  if (var_4->debug != var_5) {
    var_6(TraceEvent,"MagickCore/constitute.c","WriteImage",0x44a,"%s",var_2->filename
                  );
  }
  if (var_4->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,
                  "WriteImage");
  }
  if (var_7 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"WriteImage"
                 );
  }
  pEVar6 = var_8();
  image_info_00 = var_9(var_2);
  source = var_4->filename;
  destination = image_info_00->filename;
  var_10(destination,source,0x1000);
  var_11(image_info_00,1,pEVar6);
  if (image_info_00->magick[0] == '\0') {
    var_10(image_info_00->magick,var_4->magick,0x1000);
  }
  var_10(filename,source,0x1000);
  var_10(source,destination,0x1000);
  name = image_info_00->magick;
  var_15 = var_12(name,pEVar6);
  if (pEVar6->severity == var_13) {
    var_15 = var_12(name,var_7);
  }
  var_14(pEVar6);
  if (var_15 == (type_5 *)0x0) {
    var_16(var_4);
    var_17(var_4);
    pcVar7 = var_18(var_2,"delegate:bimodal");
    var_20 = var_19(pcVar7);
    if (var_20 == var_5) {
      var_38 = var_5;
      var_20 = var_5;
    }
    else {
      if (image_info_00->page == (char *)0x0) goto LAB_00196dd4;
      var_38 = var_5;
      var_20 = var_5;
    }
  }
  else {
    var_20 = var_21(var_15);
    if (var_20 == var_5) {
      var_4->endian = var_22;
    }
    else if ((var_2->endian == var_22) &&
            (var_20 = var_23(var_15), var_20 != var_5)) {
      var_4->endian = LSBEndian;
    }
    var_16(var_4);
    var_17(var_4);
    pcVar7 = var_18(var_2,"delegate:bimodal");
    var_20 = var_19(pcVar7);
    if ((var_20 != var_5) && (image_info_00->page == (char *)0x0)) {
LAB_00196dd4:
      var_25 = var_24(var_4);
      if ((var_25 == (type_3 *)0x0) &&
         ((var_25 = var_26(var_4), var_25 == (type_3 *)0x0 &&
          (var_20 = var_27(var_4), var_20 == var_5)))) {
        var_29 = var_28(var_4->magick,name,var_7);
        if ((var_29 != (type_7 *)0x0) && (var_31 = var_30(var_29), var_31 == 0)) {
          var_20 = var_32(var_4->magick_filename);
          if (var_20 != var_5) {
            var_10(source,var_4->magick_filename,0x1000);
            var_20 = var_33(image_info_00,var_4,var_4->magick,name,var_7);
            var_34(image_info_00);
            var_10(source,filename,0x1000);
            goto LAB_00196730;
          }
        }
      }
      if (var_15 == (type_5 *)0x0) {
        var_38 = var_5;
        var_20 = var_5;
        goto LAB_00196685;
      }
    }
    var_20 = var_35(var_15);
    var_38 = var_20;
    if (var_20 != var_5) {
      var_10(image_filename,source,0x1000);
      var_20 = var_36(var_2,var_4,WriteBinaryBlobMode,var_7);
      var_10(source,image_filename,0x1000);
      var_38 = var_20;
      if (var_20 != var_5) {
        var_38 = var_37(var_4);
        if (var_38 == var_5) {
          image_info_00->adjoin = MagickTrue;
          var_10(destination,source,0x1000);
          var_39(source);
        }
        var_38 = (type_1)(var_38 == var_5);
        var_40(var_4);
      }
    }
  }
LAB_00196685:
  var_42 = var_41(var_15);
  if (var_42 == (type_6 *)0x0) {
    var_29 = var_28((char *)0x0,name,var_7);
    if (var_29 == (type_7 *)0x0) {
      pEVar6 = var_8();
      var_43 = var_12(name,pEVar6);
      if (pEVar6->severity == var_13) {
        var_43 = var_12(name,var_7);
      }
      var_14(pEVar6);
      if ((image_info_00->affirm == var_5) && (var_43 == (type_5 *)0x0)) {
        var_10(name,var_4->magick,0x1000);
        var_43 = var_12(name,var_7);
      }
      var_42 = var_41(var_43);
      if (var_42 == (type_6 *)0x0) {
        var_44(source,ExtensionPath,image_filename);
        if (image_filename[0] == '\0') {
          var_43 = var_12(var_4->magick,var_7);
        }
        else {
          var_43 = var_12(image_filename,var_7);
        }
        var_10(source,filename,0x1000);
        var_42 = var_41(var_43);
        if (var_42 == (type_6 *)0x0) {
          var_43 = var_12(var_4->magick,var_7);
          var_42 = var_41(var_43);
          if (var_42 == (type_6 *)0x0) {
            var_45
                      (var_7,"MagickCore/constitute.c","WriteImage",0x4e4,MissingDelegateError,
                       "NoEncodeDelegateForThisImageFormat","`%s\'",name);
            goto LAB_001966eb;
          }
        }
      }
      var_20 = var_46(var_43);
      if (var_20 == var_5) {
        var_47(var_43->semaphore);
      }
      var_20 = var_48(name,WritePolicyRights,var_7);
      if (var_20 != var_5) {
        var_20 = (*var_42)(image_info_00,var_4,var_7);
      }
      var_49 = var_46(var_43);
      if (var_49 == var_5) {
        var_50(var_43->semaphore);
      }
    }
    else {
      image_info_00->filename[0] = '\0';
      var_20 = var_51(var_29);
      if (var_20 == var_5) {
        var_47(var_29->semaphore);
      }
      var_20 = var_33(image_info_00,var_4,(char *)0x0,name,var_7);
      var_49 = var_51(var_29);
      if (var_49 == var_5) {
        var_50(var_29->semaphore);
      }
      var_10(source,filename,0x1000);
    }
  }
  else {
    var_20 = var_46(var_15);
    if (var_20 == var_5) {
      var_47(var_15->semaphore);
    }
    var_20 = var_48(name,WritePolicyRights,var_7);
    if (var_20 != var_5) {
      var_20 = (*var_42)(image_info_00,var_4,var_7);
    }
    var_49 = var_46(var_15);
    if (var_49 == var_5) {
      var_50(var_15->semaphore);
    }
  }
LAB_001966eb:
  if (var_38 != var_5) {
    var_20 = var_36(image_info_00,var_4,ReadBinaryBlobMode,var_7);
    if (var_20 != var_5) {
      var_52(destination);
      var_20 = var_53(var_4,destination,var_7);
    }
    var_40(var_4);
    var_52(source);
    var_10(source,destination,0x1000);
  }
  var_55 = var_54(name,"info");
  if ((var_55 != 0) && (image_info_00->verbose != var_5)) {
    var_56(var_4,*(type_8 **)PTR_stdout_006dafe8,var_5,var_7);
  }
  var_34(image_info_00);
  var_38 = var_57(var_4);
  if (var_38 != var_5) {
    var_45
              (var_7,"MagickCore/constitute.c","WriteImage",0x50d,FileOpenError,
               "UnableToWriteFile","`%s\'",source);
    var_25 = var_4;
    if (var_2->adjoin != var_5) {
      do {
        var_4 = var_25;
        var_25 = var_4->previous;
      } while (var_4->previous != (type_9 *)0x0);
    }
    var_40(var_4);
    var_20 = var_5;
  }
LAB_00196730:
  if (var_58 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_59();
  }
  return var_20;
}


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

uint MASKED(long param_1,long param_2,long param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  long lVar8;
  long lVar9;
  undefined8 uVar10;
  code *pcVar11;
  long lVar12;
  long in_FS_OFFSET;
  long local_2050;
  undefined1 local_2048 [4096];
  char local_1048 [4104];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (ImageInfo *) NULL","MagickCore/constitute.c",0x446,"MASKED");
  }
  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","MagickCore/constitute.c",0x447,
                  "MASKED");
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/constitute.c",0x448,"MASKED");
  }
  if (*(int *)(param_2 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/constitute.c","MASKED",0x44a,&DAT_0041fe36,
                   param_1 + 0x2270);
  }
  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/constitute.c",0x44c,
                  "MASKED");
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/constitute.c",0x44d,"MASKED"
                 );
  }
  piVar7 = (int *)AcquireExceptionInfo();
  lVar8 = CloneImageInfo(param_1);
  lVar1 = param_2 + 0x3f8;
  lVar2 = lVar8 + 0x2270;
  CopyMagickString(lVar2,lVar1,0x1000);
  SetImageInfo(lVar8,1,piVar7);
  if (*(char *)(lVar8 + 0x270) == '\0') {
    CopyMagickString(lVar8 + 0x270,param_2 + 0x23f8,0x1000);
  }
  CopyMagickString(local_2048,lVar1,0x1000);
  CopyMagickString(lVar1,lVar2,0x1000);
  lVar3 = lVar8 + 0x270;
  lVar9 = GetMagickInfo(lVar3,piVar7);
  if (*piVar7 == 499) {
    lVar9 = GetMagickInfo(lVar3,param_3);
  }
  DestroyExceptionInfo(piVar7);
  if (lVar9 == 0) {
    FUN_00267330(param_2);
    DisassociateImageStream(param_2);
    uVar10 = GetImageOption(param_1,"delegate:bimodal");
    iVar5 = IsStringTrue(uVar10);
    if (iVar5 == 0) {
      uVar4 = 0;
      uVar6 = 0;
    }
    else {
      if (*(long *)(lVar8 + 0x28) == 0) goto LAB_00196dd4;
      uVar4 = 0;
      uVar6 = 0;
    }
  }
  else {
    iVar5 = GetMagickEndianSupport(lVar9);
    if (iVar5 == 0) {
      *(undefined4 *)(param_2 + 0x2ac) = 0;
    }
    else if ((*(int *)(param_1 + 0x54) == 0) && (iVar5 = GetMagickRawSupport(lVar9), iVar5 != 0)) {
      *(undefined4 *)(param_2 + 0x2ac) = 1;
    }
    FUN_00267330(param_2);
    DisassociateImageStream(param_2);
    uVar10 = GetImageOption(param_1,"delegate:bimodal");
    iVar5 = IsStringTrue(uVar10);
    if ((iVar5 != 0) && (*(long *)(lVar8 + 0x28) == 0)) {
LAB_00196dd4:
      lVar12 = GetPreviousImageInList(param_2);
      if ((lVar12 == 0) &&
         ((lVar12 = GetNextImageInList(param_2), lVar12 == 0 &&
          (iVar5 = IsTaintImage(param_2), iVar5 == 0)))) {
        lVar12 = GetDelegateInfo(param_2 + 0x23f8,lVar3,param_3);
        if ((lVar12 != 0) && (lVar12 = GetDelegateMode(lVar12), lVar12 == 0)) {
          iVar5 = IsPathAccessible(param_2 + 0x13f8);
          if (iVar5 != 0) {
            CopyMagickString(lVar1,param_2 + 0x13f8,0x1000);
            uVar6 = InvokeDelegate(lVar8,param_2,param_2 + 0x23f8,lVar3,param_3);
            DestroyImageInfo(lVar8);
            CopyMagickString(lVar1,local_2048,0x1000);
            goto LAB_00196730;
          }
        }
      }
      if (lVar9 == 0) {
        uVar4 = 0;
        uVar6 = 0;
        goto LAB_00196685;
      }
    }
    uVar6 = GetMagickEncoderSeekableStream(lVar9);
    uVar4 = uVar6;
    if (uVar6 != 0) {
      CopyMagickString(local_1048,lVar1,0x1000);
      uVar6 = OpenBlob(param_1,param_2,4,param_3);
      CopyMagickString(lVar1,local_1048,0x1000);
      uVar4 = uVar6;
      if (uVar6 != 0) {
        iVar5 = IsBlobSeekable(param_2);
        if (iVar5 == 0) {
          *(undefined4 *)(lVar8 + 0xc) = 1;
          CopyMagickString(lVar2,lVar1,0x1000);
          AcquireUniqueFilename(lVar1);
        }
        uVar4 = (uint)(iVar5 == 0);
        CloseBlob(param_2);
      }
    }
  }
LAB_00196685:
  pcVar11 = (code *)GetImageEncoder(lVar9);
  if (pcVar11 == (code *)0x0) {
    lVar9 = GetDelegateInfo(0,lVar3,param_3);
    if (lVar9 == 0) {
      piVar7 = (int *)AcquireExceptionInfo();
      local_2050 = GetMagickInfo(lVar3,piVar7);
      if (*piVar7 == 499) {
        local_2050 = GetMagickInfo(lVar3,param_3);
      }
      DestroyExceptionInfo(piVar7);
      if ((*(int *)(lVar8 + 0x10) == 0) && (local_2050 == 0)) {
        CopyMagickString(lVar3,param_2 + 0x23f8,0x1000);
        local_2050 = GetMagickInfo(lVar3,param_3);
      }
      pcVar11 = (code *)GetImageEncoder(local_2050);
      if (pcVar11 == (code *)0x0) {
        GetPathComponent(lVar1,6,local_1048);
        if (local_1048[0] == '\0') {
          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);
        }
        else {
          local_2050 = GetMagickInfo(local_1048,param_3);
        }
        CopyMagickString(lVar1,local_2048,0x1000);
        pcVar11 = (code *)GetImageEncoder(local_2050);
        if (pcVar11 == (code *)0x0) {
          local_2050 = GetMagickInfo(param_2 + 0x23f8,param_3);
          pcVar11 = (code *)GetImageEncoder(local_2050);
          if (pcVar11 == (code *)0x0) {
            ThrowMagickException
                      (param_3,"MagickCore/constitute.c","MASKED",0x4e4,0x1a4,
                       "NoEncodeDelegateForThisImageFormat","`%s\'",lVar3);
            goto LAB_001966eb;
          }
        }
      }
      iVar5 = GetMagickEncoderThreadSupport(local_2050);
      if (iVar5 == 0) {
        LockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));
      }
      uVar6 = FUN_001947f4(lVar3,2,param_3);
      if (uVar6 != 0) {
        uVar6 = (*pcVar11)(lVar8,param_2,param_3);
      }
      iVar5 = GetMagickEncoderThreadSupport(local_2050);
      if (iVar5 == 0) {
        UnlockSemaphoreInfo(*(undefined8 *)(local_2050 + 0x58));
      }
    }
    else {
      *(undefined1 *)(lVar8 + 0x2270) = 0;
      iVar5 = GetDelegateThreadSupport(lVar9);
      if (iVar5 == 0) {
        LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));
      }
      uVar6 = InvokeDelegate(lVar8,param_2,0,lVar3,param_3);
      iVar5 = GetDelegateThreadSupport(lVar9);
      if (iVar5 == 0) {
        UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x38));
      }
      CopyMagickString(lVar1,local_2048,0x1000);
    }
  }
  else {
    iVar5 = GetMagickEncoderThreadSupport(lVar9);
    if (iVar5 == 0) {
      LockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));
    }
    uVar6 = FUN_001947f4(lVar3,2,param_3);
    if (uVar6 != 0) {
      uVar6 = (*pcVar11)(lVar8,param_2,param_3);
    }
    iVar5 = GetMagickEncoderThreadSupport(lVar9);
    if (iVar5 == 0) {
      UnlockSemaphoreInfo(*(undefined8 *)(lVar9 + 0x58));
    }
  }
LAB_001966eb:
  if (uVar4 != 0) {
    uVar6 = OpenBlob(lVar8,param_2,2,param_3);
    if (uVar6 != 0) {
      RelinquishUniqueFileResource(lVar2);
      uVar6 = ImageToFile(param_2,lVar2,param_3);
    }
    CloseBlob(param_2);
    RelinquishUniqueFileResource(lVar1);
    CopyMagickString(lVar1,lVar2,0x1000);
  }
  iVar5 = LocaleCompare(lVar3,"info");
  if ((iVar5 != 0) && (*(int *)(lVar8 + 0x218) != 0)) {
    IdentifyImage(param_2,*(undefined8 *)PTR_stdout_006dafe8,0,param_3);
  }
  DestroyImageInfo(lVar8);
  iVar5 = GetBlobError(param_2);
  if (iVar5 != 0) {
    ThrowMagickException
              (param_3,"MagickCore/constitute.c","MASKED",0x50d,0x1ae,"UnableToWriteFile",
               "`%s\'",lVar1);
    lVar1 = param_2;
    if (*(int *)(param_1 + 0xc) != 0) {
      do {
        param_2 = lVar1;
        lVar1 = *(long *)(param_2 + 0x3440);
      } while (*(long *)(param_2 + 0x3440) != 0);
    }
    CloseBlob(param_2);
    uVar6 = 0;
  }
LAB_00196730:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar6;
}

