
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)

{
  float fVar1;
  uchar uVar5;
  SignatureInfo *signature_info;
  StringInfo *string_info;
  CacheView *cache_view;
  Quantum *pQVar2;
  uchar *puVar3;
  PixelChannelMap *pPVar4;
  char *value;
  uchar *puVar6;
  uchar *puVar7;
  size_t sVar8;
  int iVar9;
  uchar uVar10;
  size_t sVar11;
  longdouble lVar12;
  uchar local_48;
  int local_44;
  int local_34;
  
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,
                  "SignatureImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);
  }
  signature_info = AcquireSignatureInfo();
  string_info = AcquireStringInfo(image->columns * image->number_channels * 4);
  cache_view = AcquireVirtualCacheView(image,exception);
  if ((int)image->rows < 1) {
LAB_001b1265:
    DestroyCacheView(cache_view);
    FinalizeSignature(signature_info);
    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");
    if (signature_info == (SignatureInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,
                    "GetSignatureDigest");
    }
    if (signature_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",
                    0x14c,"GetSignatureDigest");
    }
    value = StringInfoToHexString(signature_info->digest);
    DeleteImageProperty(image,"signature");
    SetImageProperty(image,"signature",value,exception);
    DestroyString(value);
    DestroyStringInfo(string_info);
    DestroySignatureInfo(signature_info);
    return MagickTrue;
  }
  local_34 = 0;
LAB_001b10d0:
  pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);
  if (pQVar2 != (Quantum *)0x0) {
    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);
    puVar3 = GetStringInfoDatum(string_info);
    sVar8 = image->columns;
    if (0 < (int)sVar8) {
      local_44 = 0;
      lVar12 = (longdouble)_DAT_002df2e0;
      puVar6 = puVar3;
LAB_001b1150:
      pPVar4 = image->channel_map;
      sVar11 = image->number_channels;
      if ((pPVar4[6].traits != UndefinedPixelTrait) &&
         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;
      iVar9 = 0;
      puVar7 = puVar6;
      if (0 < (int)sVar11) {
        do {
          puVar6 = puVar7;
          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {
LAB_001b119b:
            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;
          }
          else {
            puVar6 = puVar7 + 4;
            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);
            uVar5 = (uchar)((uint)fVar1 >> 8);
            uVar10 = (uchar)((uint)fVar1 >> 0x18);
            local_48 = (uchar)((uint)fVar1 >> 0x10);
            if (signature_info->lsb_first != MagickFalse) {
              *puVar7 = SUB41(fVar1,0);
              puVar7[1] = uVar5;
              puVar7[3] = uVar10;
              puVar7[2] = local_48;
              sVar11 = image->number_channels;
              goto LAB_001b119b;
            }
            *puVar7 = uVar10;
            puVar7[3] = SUB41(fVar1,0);
            puVar7[1] = local_48;
            puVar7[2] = uVar5;
            sVar11 = image->number_channels;
            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;
          }
          iVar9 = iVar9 + 1;
          pPVar4 = image->channel_map;
          puVar7 = puVar6;
        } while( true );
      }
      goto LAB_001b1214;
    }
    sVar8 = 0;
    goto LAB_001b1230;
  }
  goto LAB_001b1265;
code_r0x001b134a:
  local_44 = local_44 + 1;
  pQVar2 = pQVar2 + sVar11;
  if ((int)sVar8 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b120d:
  sVar8 = image->columns;
LAB_001b1214:
  local_44 = local_44 + 1;
  pQVar2 = pQVar2 + sVar11;
  if ((int)sVar8 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b122a:
  sVar8 = (int)puVar6 - (int)puVar3;
LAB_001b1230:
  SetStringInfoLength(string_info,sVar8);
  UpdateSignature(signature_info,string_info);
  local_34 = local_34 + 1;
  if ((int)image->rows <= local_34) goto LAB_001b1265;
  goto LAB_001b10d0;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 SignatureImage(int param_1,undefined4 param_2)

{
  float fVar1;
  undefined1 uVar8;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  undefined1 *puVar6;
  int iVar7;
  undefined1 *puVar9;
  undefined1 *puVar10;
  int iVar11;
  undefined1 uVar12;
  int iVar13;
  int iVar14;
  longdouble lVar15;
  undefined1 local_48;
  int local_44;
  int local_34;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,
                  "SignatureImage");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,
                   param_1 + 0x318);
  }
  iVar2 = FUN_001b06a0();
  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);
  uVar4 = AcquireVirtualCacheView(param_1,param_2);
  if (*(int *)(param_1 + 0x1c) < 1) {
LAB_001b1265:
    DestroyCacheView(uVar4);
    FUN_001b0930(iVar2);
    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");
    if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,
                    "GetSignatureDigest");
    }
    if (*(int *)(iVar2 + 0x28) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",
                    0x14c,"GetSignatureDigest");
    }
    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));
    DeleteImageProperty(param_1,"signature");
    SetImageProperty(param_1,"signature",uVar4,param_2);
    DestroyString(uVar4);
    DestroyStringInfo(uVar3);
    FUN_001b0850(iVar2);
    return 1;
  }
  local_34 = 0;
LAB_001b10d0:
  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);
  if (iVar5 != 0) {
    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);
    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);
    iVar13 = *(int *)(param_1 + 0x18);
    if (0 < iVar13) {
      local_44 = 0;
      lVar15 = (longdouble)_DAT_002df2e0;
      puVar9 = puVar6;
LAB_001b1150:
      iVar7 = *(int *)(param_1 + 0x2a8);
      iVar14 = *(int *)(param_1 + 0x298);
      if ((*(int *)(iVar7 + 0x4c) != 0) &&
         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))
      goto code_r0x001b134a;
      iVar11 = 0;
      puVar10 = puVar9;
      if (0 < iVar14) {
        do {
          puVar9 = puVar10;
          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {
LAB_001b119b:
            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;
          }
          else {
            puVar9 = puVar10 + 4;
            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));
            uVar8 = (undefined1)((uint)fVar1 >> 8);
            uVar12 = (undefined1)((uint)fVar1 >> 0x18);
            local_48 = (undefined1)((uint)fVar1 >> 0x10);
            if (*(int *)(iVar2 + 0x20) != 0) {
              *puVar10 = SUB41(fVar1,0);
              puVar10[1] = uVar8;
              puVar10[3] = uVar12;
              puVar10[2] = local_48;
              iVar14 = *(int *)(param_1 + 0x298);
              goto LAB_001b119b;
            }
            *puVar10 = uVar12;
            puVar10[3] = SUB41(fVar1,0);
            puVar10[1] = local_48;
            puVar10[2] = uVar8;
            iVar14 = *(int *)(param_1 + 0x298);
            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;
          }
          iVar11 = iVar11 + 1;
          iVar7 = *(int *)(param_1 + 0x2a8);
          puVar10 = puVar9;
        } while( true );
      }
      goto LAB_001b1214;
    }
    iVar5 = 0;
    goto LAB_001b1230;
  }
  goto LAB_001b1265;
code_r0x001b134a:
  local_44 = local_44 + 1;
  iVar5 = iVar5 + iVar14 * 8;
  if (iVar13 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b120d:
  iVar13 = *(int *)(param_1 + 0x18);
LAB_001b1214:
  local_44 = local_44 + 1;
  iVar5 = iVar5 + iVar14 * 8;
  if (iVar13 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b122a:
  iVar5 = (int)puVar9 - (int)puVar6;
LAB_001b1230:
  SetStringInfoLength(uVar3,iVar5);
  FUN_001b0ea0(iVar2,uVar3);
  local_34 = local_34 + 1;
  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;
  goto LAB_001b10d0;
}


CALL 0x0003e478
ADD EAX,0x26cfcb
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV EBP,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x14],EAX
TEST EBP,EBP
JZ 0x001b13c6
CMP dword ptr [EBP + 0x3344],0xabacadab
JNZ 0x001b13a3
LEA EAX,[EAX + 0xffeea4c8]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EBP + 0x3328]
TEST EAX,EAX
JNZ 0x001b136c
CALL 0x001b06a0
SUB ESP,0xc
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EBP + 0x18]
IMUL EAX,dword ptr [EBP + 0x298]
SHL EAX,0x2
PUSH EAX
MOV EDI,dword ptr [ESP + 0x24]
MOV EBX,EDI
CALL 0x000329e0
MOV dword ptr [ESP + 0x2c],EAX
POP ESI
POP EDI
PUSH dword ptr [ESP + 0x5c]
PUSH EBP
CALL 0x00030eb0
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [EBP + 0x1c]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x001b1265
MOV dword ptr [ESP + 0x18],0x0
MOV EDI,EBP
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x5c]
PUSH 0x1
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH dword ptr [ESP + 0x40]
MOV ESI,dword ptr [ESP + 0x34]
MOV EBX,ESI
CALL 0x00031280
ADD ESP,0x20
MOV EBP,EAX
TEST EAX,EAX
JZ 0x001b1263
MOV EAX,dword ptr [EDI + 0x18]
SUB ESP,0x8
IMUL EAX,dword ptr [EDI + 0x298]
SHL EAX,0x2
PUSH EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x00031010
POP ECX
PUSH dword ptr [ESP + 0x28]
CALL 0x00033130
MOV EBX,dword ptr [EDI + 0x18]
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
TEST EBX,EBX
JLE 0x001b1365
MOV dword ptr [ESP + 0x50],EDI
MOV EDI,EBP
MOV EBP,dword ptr [ESP + 0x50]
MOV ECX,EAX
MOV dword ptr [ESP + 0x8],0x0
FLD qword ptr [ESI + 0xffec12e0]
NOP
MOV EAX,dword ptr [EBP + 0x2a8]
MOV ESI,dword ptr [EBP + 0x298]
MOV EDX,dword ptr [EAX + 0x4c]
TEST EDX,EDX
JNZ 0x001b1330
XOR EDX,EDX
TEST ESI,ESI
JLE 0x001b1214
MOV dword ptr [ESP + 0xc],EDI
JMP 0x001b11a8
MOV byte ptr [ECX],AL
MOV EAX,ESI
MOV byte ptr [ECX + 0x1],AL
MOVZX EAX,byte ptr [ESP + 0x4]
MOV byte ptr [ECX + 0x3],BL
MOV byte ptr [ECX + 0x2],AL
MOV ECX,dword ptr [ESP]
MOV ESI,dword ptr [EBP + 0x298]
ADD EDX,0x1
CMP ESI,EDX
JLE 0x001b120d
MOV EAX,dword ptr [EBP + 0x2a8]
LEA EBX,[EDX + EDX*0x2]
MOV EBX,dword ptr [EAX + EBX*0x4]
LEA EBX,[EBX + EBX*0x2]
TEST byte ptr [EAX + EBX*0x4 + 0x4],0x2
JZ 0x001b119b
MOV EAX,dword ptr [ESP + 0xc]
FLD ST0
LEA EDI,[ECX + 0x4]
MOV dword ptr [ESP],EDI
MOV EDI,dword ptr [ESP + 0x10]
FMUL qword ptr [EAX + EDX*0x8]
FSTP dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,dword ptr [EDI + 0x20]
MOV ESI,EAX
MOV EBX,EAX
SHR ESI,0x10
SHR EBX,0x18
MOV dword ptr [ESP + 0x4],ESI
MOVZX ESI,AH
TEST EDI,EDI
JNZ 0x001b1180
MOV byte ptr [ECX],BL
MOVZX EBX,byte ptr [ESP + 0x4]
ADD EDX,0x1
MOV byte ptr [ECX + 0x3],AL
MOV byte ptr [ECX + 0x1],BL
MOV EBX,ESI
MOV byte ptr [ECX + 0x2],BL
MOV ESI,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP]
CMP ESI,EDX
JG 0x001b11a2
MOV EDI,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [EBP + 0x18]
ADD dword ptr [ESP + 0x8],0x1
LEA EDI,[EDI + ESI*0x8]
MOV EAX,dword ptr [ESP + 0x8]
CMP EBX,EAX
JG 0x001b1150
FSTP ST0
SUB ECX,dword ptr [ESP + 0x20]
MOV EDI,EBP
SUB ESP,0x8
PUSH ECX
MOV ESI,dword ptr [ESP + 0x28]
PUSH ESI
MOV EBX,dword ptr [ESP + 0x24]
CALL 0x00031010
POP EBP
POP EAX
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
CALL 0x001b0ea0
ADD dword ptr [ESP + 0x28],0x1
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
CMP dword ptr [EDI + 0x1c],EAX
JG 0x001b10d0
MOV EBP,EDI
SUB ESP,0xc
PUSH dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x24]
MOV EBX,EDI
CALL 0x00032f30
MOV ESI,dword ptr [ESP + 0x20]
MOV dword ptr [ESP],ESI
CALL 0x001b0930
LEA EAX,[EDI + 0xffec48cc]
MOV dword ptr [ESP],EAX
LEA EAX,[EDI + 0xffeea5f0]
PUSH 0x14a
PUSH EAX
PUSH dword ptr [ESP + 0x40]
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
TEST ESI,ESI
JZ 0x001b1407
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x28],0xabacadab
JNZ 0x001b13e7
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x1c]
PUSH dword ptr [EAX + 0x8]
MOV EDI,dword ptr [ESP + 0x24]
MOV EBX,EDI
CALL 0x000323e0
LEA EDI,[EDI + 0xfff263bf]
MOV ESI,EAX
POP EAX
POP EDX
PUSH EDI
PUSH EBP
MOV dword ptr [ESP + 0x24],EBX
CALL 0x00031360
ADD ESP,0x10
PUSH dword ptr [ESP + 0x54]
PUSH ESI
PUSH EDI
PUSH EBP
MOV EDI,dword ptr [ESP + 0x24]
MOV EBX,EDI
CALL 0x00031710
MOV dword ptr [ESP],ESI
CALL 0x00032950
POP ECX
PUSH dword ptr [ESP + 0x28]
CALL 0x000332e0
POP EBX
PUSH dword ptr [ESP + 0x1c]
CALL 0x001b0850
ADD ESP,0x4c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [EAX + 0x50]
FLD qword ptr [EDI + EDX*0x8]
MOV EDX,dword ptr [ESP + 0x14]
FLD dword ptr [EDX + 0xffec34c0]
FUCOMIP ST0,ST1
FSTP ST0
JC 0x001b1167
ADD dword ptr [ESP + 0x8],0x1
LEA EDI,[EDI + ESI*0x8]
MOV EAX,dword ptr [ESP + 0x8]
CMP EBX,EAX
JG 0x001b1150
FSTP ST0
JMP 0x001b122a
XOR ECX,ECX
JMP 0x001b1230
LEA EAX,[EBP + 0x318]
SUB ESP,0x8
PUSH EAX
MOV EBX,dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffed95ae]
PUSH EAX
LEA EAX,[EBX + 0xffeea550]
PUSH 0x1f7
PUSH EAX
PUSH dword ptr [ESP + 0x40]
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x001b1079
MOV EBX,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xffeea560]
PUSH EAX
LEA EAX,[EBX + 0xffeea4c8]
PUSH 0x1f5
PUSH EAX
LEA EAX,[EBX + 0xffecc4b8]
PUSH EAX
CALL 0x000313d0
MOV EBX,EAX
LEA EAX,[EAX + 0xffeea560]
PUSH EAX
LEA EAX,[EBX + 0xffeea4c8]
PUSH 0x1f4
PUSH EAX
LEA EAX,[EBX + 0xffed9cf4]
PUSH EAX
CALL 0x000313d0
MOV EBX,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xffeea5dc]
PUSH EAX
LEA EAX,[EBX + 0xffeea4e0]
PUSH 0x14c
PUSH dword ptr [ESP + 0x30]
PUSH EAX
CALL 0x000313d0
MOV EBX,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xffeea5dc]
PUSH EAX
LEA EAX,[EBX + 0xffeea514]
PUSH 0x14b
PUSH dword ptr [ESP + 0x30]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined4 SignatureImage(int param_1,undefined4 param_2)\n\n{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}\n\n" comment comment (function_definition "undefined4 SignatureImage(int param_1,undefined4 param_2)\n\n{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" type_identifier (function_declarator "SignatureImage(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "longdouble lVar15;" type_identifier identifier ;) (declaration "undefined1 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\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 != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""SignatureImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (expression_statement "iVar2 = FUN_001b06a0();" (assignment_expression "iVar2 = FUN_001b06a0()" identifier = (call_expression "FUN_001b06a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (assignment_expression "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier = (call_expression "AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier (argument_list "(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" ( (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) * number_literal) )))) ;) (expression_statement "uVar4 = AcquireVirtualCacheView(param_1,param_2);" (assignment_expression "uVar4 = AcquireVirtualCacheView(param_1,param_2)" identifier = (call_expression "AcquireVirtualCacheView(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" { (labeled_statement "LAB_001b1265:\n    DestroyCacheView(uVar4);" statement_identifier : (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;)) (expression_statement "FUN_001b0930(iVar2);" (call_expression "FUN_001b0930(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" identifier (argument_list "(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" ( number_literal , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""GetSignatureDigest"" " string_content ") , number_literal , (string_literal ""..."" " string_content ") ))) ;) (if_statement "if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" { comment (expression_statement "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");" (call_expression "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" identifier (argument_list "("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" ( (string_literal ""signature_info != (SignatureInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != -0x54535255)" ( (binary_expression "*(int *)(iVar2 + 0x28) != -0x54535255" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" { comment (expression_statement "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");" (call_expression "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" identifier (argument_list "("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" ( (string_literal ""signature_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (expression_statement "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));" (assignment_expression "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" identifier = (call_expression "StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" identifier (argument_list "(*(undefined4 *)(iVar2 + 8))" ( (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "DeleteImageProperty(param_1,"signature");" (call_expression "DeleteImageProperty(param_1,"signature")" identifier (argument_list "(param_1,"signature")" ( identifier , (string_literal ""signature"" " string_content ") ))) ;) (expression_statement "SetImageProperty(param_1,"signature",uVar4,param_2);" (call_expression "SetImageProperty(param_1,"signature",uVar4,param_2)" identifier (argument_list "(param_1,"signature",uVar4,param_2)" ( identifier , (string_literal ""signature"" " string_content ") , identifier , identifier ))) ;) (expression_statement "DestroyString(uVar4);" (call_expression "DestroyString(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyStringInfo(uVar3);" (call_expression "DestroyStringInfo(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_001b0850(iVar2);" (call_expression "FUN_001b0850(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" statement_identifier : (expression_statement "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" (assignment_expression "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" identifier = (call_expression "GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" identifier (argument_list "(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;)) (if_statement "if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" { (expression_statement "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (call_expression "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier (argument_list "(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" ( identifier , (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) * number_literal) ))) ;) (expression_statement "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);" (assignment_expression "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3)" identifier = (cast_expression "(undefined1 *)GetStringInfoDatum(uVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetStringInfoDatum(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))))) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "lVar15 = (longdouble)_DAT_002df2e0;" (assignment_expression "lVar15 = (longdouble)_DAT_002df2e0" identifier = (cast_expression "(longdouble)_DAT_002df2e0" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (expression_statement "puVar9 = puVar6;" (assignment_expression "puVar9 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);" statement_identifier : (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;" if (parenthesized_expression "((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))" ( (binary_expression "(*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" (parenthesized_expression "(*(int *)(iVar7 + 0x4c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x4c) != 0" (pointer_expression "*(int *)(iVar7 + 0x4c)" * (cast_expression "(int *)(iVar7 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x4c)" ( (binary_expression "iVar7 + 0x4c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" ( (binary_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0" (pointer_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" * (cast_expression "(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar7 + 0x50) * 8)" ( (binary_expression "iVar5 + *(int *)(iVar7 + 0x50) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x50) * 8" (pointer_expression "*(int *)(iVar7 + 0x50)" * (cast_expression "(int *)(iVar7 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x50)" ( (binary_expression "iVar7 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(double)DAT_002e14c0" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (goto_statement "goto code_r0x001b134a;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" { (do_statement "do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );" do (compound_statement "{\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        }" { (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" if (parenthesized_expression "((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2)" ( (binary_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2" (pointer_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" * (cast_expression "(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" ( (binary_expression "iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc" (binary_expression "iVar7 + 4" identifier + number_literal) + (binary_expression "*(int *)(iVar7 + iVar11 * 0xc) * 0xc" (pointer_expression "*(int *)(iVar7 + iVar11 * 0xc)" * (cast_expression "(int *)(iVar7 + iVar11 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar11 * 0xc)" ( (binary_expression "iVar7 + iVar11 * 0xc" identifier + (binary_expression "iVar11 * 0xc" identifier * number_literal)) )))) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" { (labeled_statement "LAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" statement_identifier : (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" if (parenthesized_expression "(iVar14 <= iVar11 + 1)" ( (binary_expression "iVar14 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;))) }) (else_clause "else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" else (compound_statement "{\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" { (expression_statement "puVar9 = puVar10 + 4;" (assignment_expression "puVar9 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));" (assignment_expression "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" identifier = (cast_expression "(float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" ( (binary_expression "lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8)" (binary_expression "lVar15 * (longdouble)" identifier * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)(iVar5 + iVar11 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar11 * 8)" ( (binary_expression "iVar5 + iVar11 * 8" identifier + (binary_expression "iVar11 * 8" identifier * number_literal)) )))) )))) ;) (expression_statement "uVar8 = (undefined1)((uint)fVar1 >> 8);" (assignment_expression "uVar8 = (undefined1)((uint)fVar1 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (undefined1)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (undefined1)((uint)fVar1 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_48 = (undefined1)((uint)fVar1 >> 0x10);" (assignment_expression "local_48 = (undefined1)((uint)fVar1 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) != 0" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" { (expression_statement "*puVar10 = SUB41(fVar1,0);" (assignment_expression "*puVar10 = SUB41(fVar1,0)" (pointer_expression "*puVar10" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar10[1] = uVar8;" (assignment_expression "puVar10[1] = uVar8" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = uVar12;" (assignment_expression "puVar10[3] = uVar12" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = local_48;" (assignment_expression "puVar10[2] = local_48" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001b119b;" goto statement_identifier ;) })) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar10[3] = SUB41(fVar1,0);" (assignment_expression "puVar10[3] = SUB41(fVar1,0)" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar10[1] = local_48;" (assignment_expression "puVar10[1] = local_48" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar8;" (assignment_expression "puVar10[2] = uVar8" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" if (parenthesized_expression "(iVar14 <= iVar11 + 1)" ( (binary_expression "iVar14 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;)) }))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_001b1214;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001b1230;" goto statement_identifier ;) })) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;) (labeled_statement "code_r0x001b134a:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" identifier = (binary_expression "iVar5 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "(iVar13 <= local_44)" ( (binary_expression "iVar13 <= local_44" identifier <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);" statement_identifier : (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001b1214:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" identifier = (binary_expression "iVar5 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "(iVar13 <= local_44)" ( (binary_expression "iVar13 <= local_44" identifier <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;" statement_identifier : (expression_statement "iVar5 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar5 = (int)puVar9 - (int)puVar6" identifier = (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (labeled_statement "LAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);" statement_identifier : (expression_statement "SetStringInfoLength(uVar3,iVar5);" (call_expression "SetStringInfoLength(uVar3,iVar5)" identifier (argument_list "(uVar3,iVar5)" ( identifier , identifier ))) ;)) (expression_statement "FUN_001b0ea0(iVar2,uVar3);" (call_expression "FUN_001b0ea0(iVar2,uVar3)" identifier (argument_list "(iVar2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= local_34)" ( (binary_expression "*(int *)(param_1 + 0x1c) <= local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;)) (goto_statement "goto LAB_001b10d0;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\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 "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  uchar uVar5;\n  SignatureInfo *signature_info;\n  StringInfo *string_info;\n  CacheView *cache_view;\n  Quantum *pQVar2;\n  uchar *puVar3;\n  PixelChannelMap *pPVar4;\n  char *value;\n  uchar *puVar6;\n  uchar *puVar7;\n  size_t sVar8;\n  int iVar9;\n  uchar uVar10;\n  size_t sVar11;\n  longdouble lVar12;\n  uchar local_48;\n  int local_44;\n  int local_34;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);\n  }\n  signature_info = AcquireSignatureInfo();\n  string_info = AcquireStringInfo(image->columns * image->number_channels * 4);\n  cache_view = AcquireVirtualCacheView(image,exception);\n  if ((int)image->rows < 1) {\nLAB_001b1265:\n    DestroyCacheView(cache_view);\n    FinalizeSignature(signature_info);\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    value = StringInfoToHexString(signature_info->digest);\n    DeleteImageProperty(image,"signature");\n    SetImageProperty(image,"signature",value,exception);\n    DestroyString(value);\n    DestroyStringInfo(string_info);\n    DestroySignatureInfo(signature_info);\n    return MagickTrue;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);\n  if (pQVar2 != (Quantum *)0x0) {\n    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);\n    puVar3 = GetStringInfoDatum(string_info);\n    sVar8 = image->columns;\n    if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    sVar8 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  sVar8 = image->columns;\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  sVar8 = (int)puVar6 - (int)puVar3;\nLAB_001b1230:\n  SetStringInfoLength(string_info,sVar8);\n  UpdateSignature(signature_info,string_info);\n  local_34 = local_34 + 1;\n  if ((int)image->rows <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  uchar uVar5;\n  SignatureInfo *signature_info;\n  StringInfo *string_info;\n  CacheView *cache_view;\n  Quantum *pQVar2;\n  uchar *puVar3;\n  PixelChannelMap *pPVar4;\n  char *value;\n  uchar *puVar6;\n  uchar *puVar7;\n  size_t sVar8;\n  int iVar9;\n  uchar uVar10;\n  size_t sVar11;\n  longdouble lVar12;\n  uchar local_48;\n  int local_44;\n  int local_34;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);\n  }\n  signature_info = AcquireSignatureInfo();\n  string_info = AcquireStringInfo(image->columns * image->number_channels * 4);\n  cache_view = AcquireVirtualCacheView(image,exception);\n  if ((int)image->rows < 1) {\nLAB_001b1265:\n    DestroyCacheView(cache_view);\n    FinalizeSignature(signature_info);\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    value = StringInfoToHexString(signature_info->digest);\n    DeleteImageProperty(image,"signature");\n    SetImageProperty(image,"signature",value,exception);\n    DestroyString(value);\n    DestroyStringInfo(string_info);\n    DestroySignatureInfo(signature_info);\n    return MagickTrue;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);\n  if (pQVar2 != (Quantum *)0x0) {\n    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);\n    puVar3 = GetStringInfoDatum(string_info);\n    sVar8 = image->columns;\n    if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    sVar8 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  sVar8 = image->columns;\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  sVar8 = (int)puVar6 - (int)puVar3;\nLAB_001b1230:\n  SetStringInfoLength(string_info,sVar8);\n  UpdateSignature(signature_info,string_info);\n  local_34 = local_34 + 1;\n  if ((int)image->rows <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" type_identifier (function_declarator "SignatureImage(Image *image,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  uchar uVar5;\n  SignatureInfo *signature_info;\n  StringInfo *string_info;\n  CacheView *cache_view;\n  Quantum *pQVar2;\n  uchar *puVar3;\n  PixelChannelMap *pPVar4;\n  char *value;\n  uchar *puVar6;\n  uchar *puVar7;\n  size_t sVar8;\n  int iVar9;\n  uchar uVar10;\n  size_t sVar11;\n  longdouble lVar12;\n  uchar local_48;\n  int local_44;\n  int local_34;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);\n  }\n  signature_info = AcquireSignatureInfo();\n  string_info = AcquireStringInfo(image->columns * image->number_channels * 4);\n  cache_view = AcquireVirtualCacheView(image,exception);\n  if ((int)image->rows < 1) {\nLAB_001b1265:\n    DestroyCacheView(cache_view);\n    FinalizeSignature(signature_info);\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    value = StringInfoToHexString(signature_info->digest);\n    DeleteImageProperty(image,"signature");\n    SetImageProperty(image,"signature",value,exception);\n    DestroyString(value);\n    DestroyStringInfo(string_info);\n    DestroySignatureInfo(signature_info);\n    return MagickTrue;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);\n  if (pQVar2 != (Quantum *)0x0) {\n    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);\n    puVar3 = GetStringInfoDatum(string_info);\n    sVar8 = image->columns;\n    if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    sVar8 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  sVar8 = image->columns;\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  pQVar2 = pQVar2 + sVar11;\n  if ((int)sVar8 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  sVar8 = (int)puVar6 - (int)puVar3;\nLAB_001b1230:\n  SetStringInfoLength(string_info,sVar8);\n  UpdateSignature(signature_info,string_info);\n  local_34 = local_34 + 1;\n  if ((int)image->rows <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "uchar uVar5;" type_identifier identifier ;) (declaration "SignatureInfo *signature_info;" type_identifier (pointer_declarator "*signature_info" * identifier) ;) (declaration "StringInfo *string_info;" type_identifier (pointer_declarator "*string_info" * identifier) ;) (declaration "CacheView *cache_view;" type_identifier (pointer_declarator "*cache_view" * identifier) ;) (declaration "Quantum *pQVar2;" type_identifier (pointer_declarator "*pQVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "PixelChannelMap *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "char *value;" primitive_type (pointer_declarator "*value" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uchar uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "longdouble lVar12;" type_identifier identifier ;) (declaration "uchar local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\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/signature.c",500,"SignatureImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\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/signature.c",0x1f5,\n                  "SignatureImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);\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/signature.c","SignatureImage",0x1f7,"%s",image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",image->filename)" ( identifier , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""SignatureImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (expression_statement "signature_info = AcquireSignatureInfo();" (assignment_expression "signature_info = AcquireSignatureInfo()" identifier = (call_expression "AcquireSignatureInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "string_info = AcquireStringInfo(image->columns * image->number_channels * 4);" (assignment_expression "string_info = AcquireStringInfo(image->columns * image->number_channels * 4)" identifier = (call_expression "AcquireStringInfo(image->columns * image->number_channels * 4)" identifier (argument_list "(image->columns * image->number_channels * 4)" ( (binary_expression "image->columns * image->number_channels * 4" (binary_expression "image->columns * image->number_channels" (field_expression "image->columns" identifier -> field_identifier) * (field_expression "image->number_channels" identifier -> field_identifier)) * number_literal) )))) ;) (expression_statement "cache_view = AcquireVirtualCacheView(image,exception);" (assignment_expression "cache_view = AcquireVirtualCacheView(image,exception)" identifier = (call_expression "AcquireVirtualCacheView(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (if_statement "if ((int)image->rows < 1) {\nLAB_001b1265:\n    DestroyCacheView(cache_view);\n    FinalizeSignature(signature_info);\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    value = StringInfoToHexString(signature_info->digest);\n    DeleteImageProperty(image,"signature");\n    SetImageProperty(image,"signature",value,exception);\n    DestroyString(value);\n    DestroyStringInfo(string_info);\n    DestroySignatureInfo(signature_info);\n    return MagickTrue;\n  }" if (parenthesized_expression "((int)image->rows < 1)" ( (binary_expression "(int)image->rows < 1" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\nLAB_001b1265:\n    DestroyCacheView(cache_view);\n    FinalizeSignature(signature_info);\n    LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    value = StringInfoToHexString(signature_info->digest);\n    DeleteImageProperty(image,"signature");\n    SetImageProperty(image,"signature",value,exception);\n    DestroyString(value);\n    DestroyStringInfo(string_info);\n    DestroySignatureInfo(signature_info);\n    return MagickTrue;\n  }" { (labeled_statement "LAB_001b1265:\n    DestroyCacheView(cache_view);" statement_identifier : (expression_statement "DestroyCacheView(cache_view);" (call_expression "DestroyCacheView(cache_view)" identifier (argument_list "(cache_view)" ( identifier ))) ;)) (expression_statement "FinalizeSignature(signature_info);" (call_expression "FinalizeSignature(signature_info)" identifier (argument_list "(signature_info)" ( identifier ))) ;) (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" identifier (argument_list "(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" ( identifier , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""GetSignatureDigest"" " string_content ") , number_literal , (string_literal ""..."" " string_content ") ))) ;) (if_statement "if (signature_info == (SignatureInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" if (parenthesized_expression "(signature_info == (SignatureInfo *)0x0)" ( (binary_expression "signature_info == (SignatureInfo *)0x0" identifier == (cast_expression "(SignatureInfo *)0x0" ( (type_descriptor "SignatureInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" { comment (expression_statement "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");" (call_expression "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" identifier (argument_list "("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" ( (string_literal ""signature_info != (SignatureInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (if_statement "if (signature_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" if (parenthesized_expression "(signature_info->signature != 0xabacadab)" ( (binary_expression "signature_info->signature != 0xabacadab" (field_expression "signature_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" { comment (expression_statement "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");" (call_expression "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" identifier (argument_list "("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" ( (string_literal ""signature_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (expression_statement "value = StringInfoToHexString(signature_info->digest);" (assignment_expression "value = StringInfoToHexString(signature_info->digest)" identifier = (call_expression "StringInfoToHexString(signature_info->digest)" identifier (argument_list "(signature_info->digest)" ( (field_expression "signature_info->digest" identifier -> field_identifier) )))) ;) (expression_statement "DeleteImageProperty(image,"signature");" (call_expression "DeleteImageProperty(image,"signature")" identifier (argument_list "(image,"signature")" ( identifier , (string_literal ""signature"" " string_content ") ))) ;) (expression_statement "SetImageProperty(image,"signature",value,exception);" (call_expression "SetImageProperty(image,"signature",value,exception)" identifier (argument_list "(image,"signature",value,exception)" ( identifier , (string_literal ""signature"" " string_content ") , identifier , identifier ))) ;) (expression_statement "DestroyString(value);" (call_expression "DestroyString(value)" identifier (argument_list "(value)" ( identifier ))) ;) (expression_statement "DestroyStringInfo(string_info);" (call_expression "DestroyStringInfo(string_info)" identifier (argument_list "(string_info)" ( identifier ))) ;) (expression_statement "DestroySignatureInfo(signature_info);" (call_expression "DestroySignatureInfo(signature_info)" identifier (argument_list "(signature_info)" ( identifier ))) ;) (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001b10d0:\n  pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);" statement_identifier : (expression_statement "pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception);" (assignment_expression "pQVar2 = GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception)" identifier = (call_expression "GetCacheViewVirtualPixels(cache_view,0,local_34,image->columns,1,exception)" identifier (argument_list "(cache_view,0,local_34,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;)) (if_statement "if (pQVar2 != (Quantum *)0x0) {\n    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);\n    puVar3 = GetStringInfoDatum(string_info);\n    sVar8 = image->columns;\n    if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    sVar8 = 0;\n    goto LAB_001b1230;\n  }" if (parenthesized_expression "(pQVar2 != (Quantum *)0x0)" ( (binary_expression "pQVar2 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    SetStringInfoLength(string_info,image->columns * image->number_channels * 4);\n    puVar3 = GetStringInfoDatum(string_info);\n    sVar8 = image->columns;\n    if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    sVar8 = 0;\n    goto LAB_001b1230;\n  }" { (expression_statement "SetStringInfoLength(string_info,image->columns * image->number_channels * 4);" (call_expression "SetStringInfoLength(string_info,image->columns * image->number_channels * 4)" identifier (argument_list "(string_info,image->columns * image->number_channels * 4)" ( identifier , (binary_expression "image->columns * image->number_channels * 4" (binary_expression "image->columns * image->number_channels" (field_expression "image->columns" identifier -> field_identifier) * (field_expression "image->number_channels" identifier -> field_identifier)) * number_literal) ))) ;) (expression_statement "puVar3 = GetStringInfoDatum(string_info);" (assignment_expression "puVar3 = GetStringInfoDatum(string_info)" identifier = (call_expression "GetStringInfoDatum(string_info)" identifier (argument_list "(string_info)" ( identifier )))) ;) (expression_statement "sVar8 = image->columns;" (assignment_expression "sVar8 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)sVar8) {\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" if (parenthesized_expression "(0 < (int)sVar8)" ( (binary_expression "0 < (int)sVar8" number_literal < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_44 = 0;\n      lVar12 = (longdouble)_DAT_002df2e0;\n      puVar6 = puVar3;\nLAB_001b1150:\n      pPVar4 = image->channel_map;\n      sVar11 = image->number_channels;\n      if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;\n      iVar9 = 0;\n      puVar7 = puVar6;\n      if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "lVar12 = (longdouble)_DAT_002df2e0;" (assignment_expression "lVar12 = (longdouble)_DAT_002df2e0" identifier = (cast_expression "(longdouble)_DAT_002df2e0" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (expression_statement "puVar6 = puVar3;" (assignment_expression "puVar6 = puVar3" identifier = identifier) ;) (labeled_statement "LAB_001b1150:\n      pPVar4 = image->channel_map;" statement_identifier : (expression_statement "pPVar4 = image->channel_map;" (assignment_expression "pPVar4 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (if_statement "if ((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;" if (parenthesized_expression "((pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0))" ( (binary_expression "(pPVar4[6].traits != UndefinedPixelTrait) &&\n         (pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)" (parenthesized_expression "(pPVar4[6].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar4[6].traits != UndefinedPixelTrait" (field_expression "pPVar4[6].traits" (subscript_expression "pPVar4[6]" identifier [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0)" ( (binary_expression "pQVar2[pPVar4[6].offset] <= (double)DAT_002e14c0" (subscript_expression "pQVar2[pPVar4[6].offset]" identifier [ (field_expression "pPVar4[6].offset" (subscript_expression "pPVar4[6]" identifier [ number_literal ]) . field_identifier) ]) <= (cast_expression "(double)DAT_002e14c0" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (goto_statement "goto code_r0x001b134a;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) (if_statement "if (0 < (int)sVar11) {\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)sVar11)" ( (binary_expression "0 < (int)sVar11" number_literal < (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );\n      }" { (do_statement "do {\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        } while( true );" do (compound_statement "{\n          puVar6 = puVar7;\n          if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          iVar9 = iVar9 + 1;\n          pPVar4 = image->channel_map;\n          puVar7 = puVar6;\n        }" { (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) (if_statement "if ((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait) {\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }" if (parenthesized_expression "((pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait)" ( (binary_expression "(pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait) == UndefinedPixelTrait" (parenthesized_expression "(pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait)" ( (binary_expression "pPVar4[pPVar4[iVar9].channel].traits & UpdatePixelTrait" (field_expression "pPVar4[pPVar4[iVar9].channel].traits" (subscript_expression "pPVar4[pPVar4[iVar9].channel]" identifier [ (field_expression "pPVar4[iVar9].channel" (subscript_expression "pPVar4[iVar9]" identifier [ identifier ]) . field_identifier) ]) . field_identifier) & identifier) )) == identifier) )) (compound_statement "{\nLAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }" { (labeled_statement "LAB_001b119b:\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;" statement_identifier : (if_statement "if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;" if (parenthesized_expression "((int)sVar11 <= iVar9 + 1)" ( (binary_expression "(int)sVar11 <= iVar9 + 1" (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar9 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;))) }) (else_clause "else {\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }" else (compound_statement "{\n            puVar6 = puVar7 + 4;\n            fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);\n            uVar5 = (uchar)((uint)fVar1 >> 8);\n            uVar10 = (uchar)((uint)fVar1 >> 0x18);\n            local_48 = (uchar)((uint)fVar1 >> 0x10);\n            if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }\n            *puVar7 = uVar10;\n            puVar7[3] = SUB41(fVar1,0);\n            puVar7[1] = local_48;\n            puVar7[2] = uVar5;\n            sVar11 = image->number_channels;\n            if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;\n          }" { (expression_statement "puVar6 = puVar7 + 4;" (assignment_expression "puVar6 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9]);" (assignment_expression "fVar1 = (float)(lVar12 * (longdouble)pQVar2[iVar9])" identifier = (cast_expression "(float)(lVar12 * (longdouble)pQVar2[iVar9])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(lVar12 * (longdouble)pQVar2[iVar9])" ( (binary_expression "lVar12 * (longdouble)pQVar2[iVar9]" identifier * (cast_expression "(longdouble)pQVar2[iVar9]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "pQVar2[iVar9]" identifier [ identifier ]))) )))) ;) (expression_statement "uVar5 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar5 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_48 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "local_48 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (signature_info->lsb_first != MagickFalse) {\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }" if (parenthesized_expression "(signature_info->lsb_first != MagickFalse)" ( (binary_expression "signature_info->lsb_first != MagickFalse" (field_expression "signature_info->lsb_first" identifier -> field_identifier) != identifier) )) (compound_statement "{\n              *puVar7 = SUB41(fVar1,0);\n              puVar7[1] = uVar5;\n              puVar7[3] = uVar10;\n              puVar7[2] = local_48;\n              sVar11 = image->number_channels;\n              goto LAB_001b119b;\n            }" { (expression_statement "*puVar7 = SUB41(fVar1,0);" (assignment_expression "*puVar7 = SUB41(fVar1,0)" (pointer_expression "*puVar7" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar7[1] = uVar5;" (assignment_expression "puVar7[1] = uVar5" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar10;" (assignment_expression "puVar7[3] = uVar10" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = local_48;" (assignment_expression "puVar7[2] = local_48" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (goto_statement "goto LAB_001b119b;" goto statement_identifier ;) })) (expression_statement "*puVar7 = uVar10;" (assignment_expression "*puVar7 = uVar10" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[3] = SUB41(fVar1,0);" (assignment_expression "puVar7[3] = SUB41(fVar1,0)" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar7[1] = local_48;" (assignment_expression "puVar7[1] = local_48" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (if_statement "if ((int)sVar11 <= iVar9 + 1) goto LAB_001b120d;" if (parenthesized_expression "((int)sVar11 <= iVar9 + 1)" ( (binary_expression "(int)sVar11 <= iVar9 + 1" (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar9 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;)) }))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pPVar4 = image->channel_map;" (assignment_expression "pPVar4 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_001b1214;" goto statement_identifier ;) })) (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001b1230;" goto statement_identifier ;) })) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;) (labeled_statement "code_r0x001b134a:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "pQVar2 = pQVar2 + sVar11;" (assignment_expression "pQVar2 = pQVar2 + sVar11" identifier = (binary_expression "pQVar2 + sVar11" identifier + identifier)) ;) (if_statement "if ((int)sVar8 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "((int)sVar8 <= local_44)" ( (binary_expression "(int)sVar8 <= local_44" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b120d:\n  sVar8 = image->columns;" statement_identifier : (expression_statement "sVar8 = image->columns;" (assignment_expression "sVar8 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;)) (labeled_statement "LAB_001b1214:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "pQVar2 = pQVar2 + sVar11;" (assignment_expression "pQVar2 = pQVar2 + sVar11" identifier = (binary_expression "pQVar2 + sVar11" identifier + identifier)) ;) (if_statement "if ((int)sVar8 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "((int)sVar8 <= local_44)" ( (binary_expression "(int)sVar8 <= local_44" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b122a:\n  sVar8 = (int)puVar6 - (int)puVar3;" statement_identifier : (expression_statement "sVar8 = (int)puVar6 - (int)puVar3;" (assignment_expression "sVar8 = (int)puVar6 - (int)puVar3" identifier = (binary_expression "(int)puVar6 - (int)puVar3" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (labeled_statement "LAB_001b1230:\n  SetStringInfoLength(string_info,sVar8);" statement_identifier : (expression_statement "SetStringInfoLength(string_info,sVar8);" (call_expression "SetStringInfoLength(string_info,sVar8)" identifier (argument_list "(string_info,sVar8)" ( identifier , identifier ))) ;)) (expression_statement "UpdateSignature(signature_info,string_info);" (call_expression "UpdateSignature(signature_info,string_info)" identifier (argument_list "(signature_info,string_info)" ( identifier , identifier ))) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (if_statement "if ((int)image->rows <= local_34) goto LAB_001b1265;" if (parenthesized_expression "((int)image->rows <= local_34)" ( (binary_expression "(int)image->rows <= local_34" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;)) (goto_statement "goto LAB_001b10d0;" goto statement_identifier ;) })))
(translation_unit "undefined4 SignatureImage(int param_1,undefined4 param_2)\n\n{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}\n\n" (function_definition "undefined4 SignatureImage(int param_1,undefined4 param_2)\n\n{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" type_identifier (function_declarator "SignatureImage(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "longdouble lVar15;" type_identifier identifier ;) (declaration "undefined1 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""SignatureImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""SignatureImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (expression_statement "iVar2 = FUN_001b06a0();" (assignment_expression "iVar2 = FUN_001b06a0()" identifier = (call_expression "FUN_001b06a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (assignment_expression "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier = (call_expression "AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier (argument_list "(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" ( (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) * number_literal) )))) ;) (expression_statement "uVar4 = AcquireVirtualCacheView(param_1,param_2);" (assignment_expression "uVar4 = AcquireVirtualCacheView(param_1,param_2)" identifier = (call_expression "AcquireVirtualCacheView(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" { (labeled_statement "LAB_001b1265:\n    DestroyCacheView(uVar4);" statement_identifier : (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;)) (expression_statement "FUN_001b0930(iVar2);" (call_expression "FUN_001b0930(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" identifier (argument_list "(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" ( number_literal , (string_literal ""MagickCore/signature.c"" " string_content ") , (string_literal ""GetSignatureDigest"" " string_content ") , number_literal , (string_literal ""..."" " string_content ") ))) ;) (if_statement "if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" { (expression_statement "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");" (call_expression "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" identifier (argument_list "("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" ( (string_literal ""signature_info != (SignatureInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != -0x54535255)" ( (binary_expression "*(int *)(iVar2 + 0x28) != -0x54535255" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" { (expression_statement "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");" (call_expression "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" identifier (argument_list "("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" ( (string_literal ""signature_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/signature.c"" " string_content ") , number_literal , (string_literal ""GetSignatureDigest"" " string_content ") ))) ;) })) (expression_statement "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));" (assignment_expression "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" identifier = (call_expression "StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" identifier (argument_list "(*(undefined4 *)(iVar2 + 8))" ( (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "DeleteImageProperty(param_1,"signature");" (call_expression "DeleteImageProperty(param_1,"signature")" identifier (argument_list "(param_1,"signature")" ( identifier , (string_literal ""signature"" " string_content ") ))) ;) (expression_statement "SetImageProperty(param_1,"signature",uVar4,param_2);" (call_expression "SetImageProperty(param_1,"signature",uVar4,param_2)" identifier (argument_list "(param_1,"signature",uVar4,param_2)" ( identifier , (string_literal ""signature"" " string_content ") , identifier , identifier ))) ;) (expression_statement "DestroyString(uVar4);" (call_expression "DestroyString(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyStringInfo(uVar3);" (call_expression "DestroyStringInfo(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_001b0850(iVar2);" (call_expression "FUN_001b0850(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" statement_identifier : (expression_statement "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" (assignment_expression "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" identifier = (call_expression "GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" identifier (argument_list "(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;)) (if_statement "if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" { (expression_statement "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (call_expression "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" identifier (argument_list "(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" ( identifier , (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) * number_literal) ))) ;) (expression_statement "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);" (assignment_expression "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3)" identifier = (cast_expression "(undefined1 *)GetStringInfoDatum(uVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetStringInfoDatum(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))))) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "lVar15 = (longdouble)_DAT_002df2e0;" (assignment_expression "lVar15 = (longdouble)_DAT_002df2e0" identifier = (cast_expression "(longdouble)_DAT_002df2e0" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (expression_statement "puVar9 = puVar6;" (assignment_expression "puVar9 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);" statement_identifier : (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;" if (parenthesized_expression "((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))" ( (binary_expression "(*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" (parenthesized_expression "(*(int *)(iVar7 + 0x4c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x4c) != 0" (pointer_expression "*(int *)(iVar7 + 0x4c)" * (cast_expression "(int *)(iVar7 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x4c)" ( (binary_expression "iVar7 + 0x4c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" ( (binary_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0" (pointer_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" * (cast_expression "(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar7 + 0x50) * 8)" ( (binary_expression "iVar5 + *(int *)(iVar7 + 0x50) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x50) * 8" (pointer_expression "*(int *)(iVar7 + 0x50)" * (cast_expression "(int *)(iVar7 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x50)" ( (binary_expression "iVar7 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(double)DAT_002e14c0" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (goto_statement "goto code_r0x001b134a;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" { (do_statement "do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );" do (compound_statement "{\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        }" { (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" if (parenthesized_expression "((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2)" ( (binary_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2" (pointer_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" * (cast_expression "(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" ( (binary_expression "iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc" (binary_expression "iVar7 + 4" identifier + number_literal) + (binary_expression "*(int *)(iVar7 + iVar11 * 0xc) * 0xc" (pointer_expression "*(int *)(iVar7 + iVar11 * 0xc)" * (cast_expression "(int *)(iVar7 + iVar11 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar11 * 0xc)" ( (binary_expression "iVar7 + iVar11 * 0xc" identifier + (binary_expression "iVar11 * 0xc" identifier * number_literal)) )))) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" { (labeled_statement "LAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" statement_identifier : (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" if (parenthesized_expression "(iVar14 <= iVar11 + 1)" ( (binary_expression "iVar14 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;))) }) (else_clause "else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" else (compound_statement "{\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" { (expression_statement "puVar9 = puVar10 + 4;" (assignment_expression "puVar9 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));" (assignment_expression "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" identifier = (cast_expression "(float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" ( (binary_expression "lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8)" (binary_expression "lVar15 * (longdouble)" identifier * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)(iVar5 + iVar11 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar11 * 8)" ( (binary_expression "iVar5 + iVar11 * 8" identifier + (binary_expression "iVar11 * 8" identifier * number_literal)) )))) )))) ;) (expression_statement "uVar8 = (undefined1)((uint)fVar1 >> 8);" (assignment_expression "uVar8 = (undefined1)((uint)fVar1 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (undefined1)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (undefined1)((uint)fVar1 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_48 = (undefined1)((uint)fVar1 >> 0x10);" (assignment_expression "local_48 = (undefined1)((uint)fVar1 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar1 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) != 0" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" { (expression_statement "*puVar10 = SUB41(fVar1,0);" (assignment_expression "*puVar10 = SUB41(fVar1,0)" (pointer_expression "*puVar10" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar10[1] = uVar8;" (assignment_expression "puVar10[1] = uVar8" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = uVar12;" (assignment_expression "puVar10[3] = uVar12" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = local_48;" (assignment_expression "puVar10[2] = local_48" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001b119b;" goto statement_identifier ;) })) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar10[3] = SUB41(fVar1,0);" (assignment_expression "puVar10[3] = SUB41(fVar1,0)" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar10[1] = local_48;" (assignment_expression "puVar10[1] = local_48" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar8;" (assignment_expression "puVar10[2] = uVar8" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" if (parenthesized_expression "(iVar14 <= iVar11 + 1)" ( (binary_expression "iVar14 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_001b120d;" goto statement_identifier ;)) }))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_001b1214;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001b1230;" goto statement_identifier ;) })) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;) (labeled_statement "code_r0x001b134a:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" identifier = (binary_expression "iVar5 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "(iVar13 <= local_44)" ( (binary_expression "iVar13 <= local_44" identifier <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);" statement_identifier : (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001b1214:\n  local_44 = local_44 + 1;" statement_identifier : (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" identifier = (binary_expression "iVar5 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" if (parenthesized_expression "(iVar13 <= local_44)" ( (binary_expression "iVar13 <= local_44" identifier <= identifier) )) (goto_statement "goto LAB_001b122a;" goto statement_identifier ;)) (goto_statement "goto LAB_001b1150;" goto statement_identifier ;) (labeled_statement "LAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;" statement_identifier : (expression_statement "iVar5 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar5 = (int)puVar9 - (int)puVar6" identifier = (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (labeled_statement "LAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);" statement_identifier : (expression_statement "SetStringInfoLength(uVar3,iVar5);" (call_expression "SetStringInfoLength(uVar3,iVar5)" identifier (argument_list "(uVar3,iVar5)" ( identifier , identifier ))) ;)) (expression_statement "FUN_001b0ea0(iVar2,uVar3);" (call_expression "FUN_001b0ea0(iVar2,uVar3)" identifier (argument_list "(iVar2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= local_34)" ( (binary_expression "*(int *)(param_1 + 0x1c) <= local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_001b1265;" goto statement_identifier ;)) (goto_statement "goto LAB_001b10d0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (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 ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (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 , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , 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 ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) * LIT)) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 SignatureImage(int param_1,undefined4 param_2)\n\n{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" (type_identifier "undefined4") (function_declarator "SignatureImage(int param_1,undefined4 param_2)" (identifier "SignatureImage") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  float fVar1;\n  undefined1 uVar8;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  undefined1 *puVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  undefined1 uVar12;\n  int iVar13;\n  int iVar14;\n  longdouble lVar15;\n  undefined1 local_48;\n  int local_44;\n  int local_34;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  iVar2 = FUN_001b06a0();\n  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n  uVar4 = AcquireVirtualCacheView(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }\n  local_34 = 0;\nLAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);\n  if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }\n  goto LAB_001b1265;\ncode_r0x001b134a:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);\nLAB_001b1214:\n  local_44 = local_44 + 1;\n  iVar5 = iVar5 + iVar14 * 8;\n  if (iVar13 <= local_44) goto LAB_001b122a;\n  goto LAB_001b1150;\nLAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;\nLAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);\n  FUN_001b0ea0(iVar2,uVar3);\n  local_34 = local_34 + 1;\n  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;\n  goto LAB_001b10d0;\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "undefined1 uVar8;" (type_identifier "undefined1") (identifier "uVar8") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined1 uVar12;" (type_identifier "undefined1") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "longdouble lVar15;" (type_identifier "longdouble") (identifier "lVar15") (; ";")) (declaration "undefined1 local_48;" (type_identifier "undefined1") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\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 != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (number_literal "500") (, ",") (string_literal ""SignatureImage"" (" """) (string_content "SignatureImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" (* "*") (cast_expression "(int *)(param_1 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3344)" (( "(") (binary_expression "param_1 + 0x3344" (identifier "param_1") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,\n                  "SignatureImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (number_literal "0x1f5") (, ",") (string_literal ""SignatureImage"" (" """) (string_content "SignatureImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" (* "*") (cast_expression "(int *)(param_1 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3328)" (( "(") (binary_expression "param_1 + 0x3328" (identifier "param_1") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/signature.c","SignatureImage",0x1f7,&DAT_002f75ae,\n                   param_1 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (string_literal ""SignatureImage"" (" """) (string_content "SignatureImage") (" """)) (, ",") (number_literal "0x1f7") (, ",") (pointer_expression "&DAT_002f75ae" (& "&") (identifier "DAT_002f75ae")) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_001b06a0();" (assignment_expression "iVar2 = FUN_001b06a0()" (identifier "iVar2") (= "=") (call_expression "FUN_001b06a0()" (identifier "FUN_001b06a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (assignment_expression "uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" (identifier "uVar3") (= "=") (call_expression "AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" (identifier "AcquireStringInfo") (argument_list "(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar4 = AcquireVirtualCacheView(param_1,param_2);" (assignment_expression "uVar4 = AcquireVirtualCacheView(param_1,param_2)" (identifier "uVar4") (= "=") (call_expression "AcquireVirtualCacheView(param_1,param_2)" (identifier "AcquireVirtualCacheView") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_001b1265:\n    DestroyCacheView(uVar4);\n    FUN_001b0930(iVar2);\n    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");\n    if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }\n    if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }\n    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));\n    DeleteImageProperty(param_1,"signature");\n    SetImageProperty(param_1,"signature",uVar4,param_2);\n    DestroyString(uVar4);\n    DestroyStringInfo(uVar3);\n    FUN_001b0850(iVar2);\n    return 1;\n  }" ({ "{") (labeled_statement "LAB_001b1265:\n    DestroyCacheView(uVar4);" (statement_identifier "LAB_001b1265") (: ":") (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" (identifier "DestroyCacheView") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";"))) (expression_statement "FUN_001b0930(iVar2);" (call_expression "FUN_001b0930(iVar2)" (identifier "FUN_001b0930") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");" (call_expression "LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...")" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (string_literal ""GetSignatureDigest"" (" """) (string_content "GetSignatureDigest") (" """)) (, ",") (number_literal "0x14a") (, ",") (string_literal ""..."" (" """) (string_content "...") (" """)) () ")"))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");\n    }" ({ "{") (expression_statement "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest");" (call_expression "__assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" (identifier "__assert_fail") (argument_list "("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,\n                    "GetSignatureDigest")" (( "(") (string_literal ""signature_info != (SignatureInfo *) NULL"" (" """) (string_content "signature_info != (SignatureInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (number_literal "0x14b") (, ",") (string_literal ""GetSignatureDigest"" (" """) (string_content "GetSignatureDigest") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x28) != -0x54535255) {\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != -0x54535255" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");\n    }" ({ "{") (expression_statement "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest");" (call_expression "__assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" (identifier "__assert_fail") (argument_list "("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",\n                    0x14c,"GetSignatureDigest")" (( "(") (string_literal ""signature_info->signature == MagickCoreSignature"" (" """) (string_content "signature_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/signature.c"" (" """) (string_content "MagickCore/signature.c") (" """)) (, ",") (number_literal "0x14c") (, ",") (string_literal ""GetSignatureDigest"" (" """) (string_content "GetSignatureDigest") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));" (assignment_expression "uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" (identifier "uVar4") (= "=") (call_expression "StringInfoToHexString(*(undefined4 *)(iVar2 + 8))" (identifier "StringInfoToHexString") (argument_list "(*(undefined4 *)(iVar2 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "DeleteImageProperty(param_1,"signature");" (call_expression "DeleteImageProperty(param_1,"signature")" (identifier "DeleteImageProperty") (argument_list "(param_1,"signature")" (( "(") (identifier "param_1") (, ",") (string_literal ""signature"" (" """) (string_content "signature") (" """)) () ")"))) (; ";")) (expression_statement "SetImageProperty(param_1,"signature",uVar4,param_2);" (call_expression "SetImageProperty(param_1,"signature",uVar4,param_2)" (identifier "SetImageProperty") (argument_list "(param_1,"signature",uVar4,param_2)" (( "(") (identifier "param_1") (, ",") (string_literal ""signature"" (" """) (string_content "signature") (" """)) (, ",") (identifier "uVar4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "DestroyString(uVar4);" (call_expression "DestroyString(uVar4)" (identifier "DestroyString") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "DestroyStringInfo(uVar3);" (call_expression "DestroyStringInfo(uVar3)" (identifier "DestroyStringInfo") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "FUN_001b0850(iVar2);" (call_expression "FUN_001b0850(iVar2)" (identifier "FUN_001b0850") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001b10d0:\n  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" (statement_identifier "LAB_001b10d0") (: ":") (expression_statement "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);" (assignment_expression "iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" (identifier "iVar5") (= "=") (call_expression "GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2)" (( "(") (identifier "uVar4") (, ",") (number_literal "0") (, ",") (identifier "local_34") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar5 != 0) {\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);\n    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }\n    iVar5 = 0;\n    goto LAB_001b1230;\n  }" ({ "{") (expression_statement "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);" (call_expression "SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" (identifier "SetStringInfoLength") (argument_list "(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4)" (( "(") (identifier "uVar3") (, ",") (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4" (binary_expression "*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298)" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);" (assignment_expression "puVar6 = (undefined1 *)GetStringInfoDatum(uVar3)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)GetStringInfoDatum(uVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetStringInfoDatum(uVar3)" (identifier "GetStringInfoDatum") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (0 < iVar13) {\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n      local_44 = 0;\n      lVar15 = (longdouble)_DAT_002df2e0;\n      puVar9 = puVar6;\nLAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);\n      iVar14 = *(int *)(param_1 + 0x298);\n      if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;\n      iVar11 = 0;\n      puVar10 = puVar9;\n      if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }\n      goto LAB_001b1214;\n    }" ({ "{") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar15 = (longdouble)_DAT_002df2e0;" (assignment_expression "lVar15 = (longdouble)_DAT_002df2e0" (identifier "lVar15") (= "=") (cast_expression "(longdouble)_DAT_002df2e0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_002df2e0"))) (; ";")) (expression_statement "puVar9 = puVar6;" (assignment_expression "puVar9 = puVar6" (identifier "puVar9") (= "=") (identifier "puVar6")) (; ";")) (labeled_statement "LAB_001b1150:\n      iVar7 = *(int *)(param_1 + 0x2a8);" (statement_identifier "LAB_001b1150") (: ":") (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";"))) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))\n      goto code_r0x001b134a;" (if "if") (parenthesized_expression "((*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))" (( "(") (binary_expression "(*(int *)(iVar7 + 0x4c) != 0) &&\n         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" (parenthesized_expression "(*(int *)(iVar7 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x4c) != 0" (pointer_expression "*(int *)(iVar7 + 0x4c)" (* "*") (cast_expression "(int *)(iVar7 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x4c)" (( "(") (binary_expression "iVar7 + 0x4c" (identifier "iVar7") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0)" (( "(") (binary_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0" (pointer_expression "*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" (* "*") (cast_expression "(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + *(int *)(iVar7 + 0x50) * 8)" (( "(") (binary_expression "iVar5 + *(int *)(iVar7 + 0x50) * 8" (identifier "iVar5") (+ "+") (binary_expression "*(int *)(iVar7 + 0x50) * 8" (pointer_expression "*(int *)(iVar7 + 0x50)" (* "*") (cast_expression "(int *)(iVar7 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x50)" (( "(") (binary_expression "iVar7 + 0x50" (identifier "iVar7") (+ "+") (number_literal "0x50")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (<= "<=") (cast_expression "(double)DAT_002e14c0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e14c0"))) () ")"))) () ")")) (goto_statement "goto code_r0x001b134a;" (goto "goto") (statement_identifier "code_r0x001b134a") (; ";"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (0 < iVar14) {\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(0 < iVar14)" (( "(") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n        do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        } while( true );" (do "do") (compound_statement "{\n          puVar9 = puVar10;\n          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          iVar11 = iVar11 + 1;\n          iVar7 = *(int *)(param_1 + 0x2a8);\n          puVar10 = puVar9;\n        }" ({ "{") (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" (identifier "puVar9") (= "=") (identifier "puVar10")) (; ";")) (if_statement "if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }\n          else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2)" (( "(") (binary_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2" (pointer_expression "*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" (* "*") (cast_expression "(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc)" (( "(") (binary_expression "iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc" (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) (+ "+") (binary_expression "*(int *)(iVar7 + iVar11 * 0xc) * 0xc" (pointer_expression "*(int *)(iVar7 + iVar11 * 0xc)" (* "*") (cast_expression "(int *)(iVar7 + iVar11 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar11 * 0xc)" (( "(") (binary_expression "iVar7 + iVar11 * 0xc" (identifier "iVar7") (+ "+") (binary_expression "iVar11 * 0xc" (identifier "iVar11") (* "*") (number_literal "0xc"))) () ")")))) (* "*") (number_literal "0xc"))) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" ({ "{") (labeled_statement "LAB_001b119b:\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" (statement_identifier "LAB_001b119b") (: ":") (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" (if "if") (parenthesized_expression "(iVar14 <= iVar11 + 1)" (( "(") (binary_expression "iVar14 <= iVar11 + 1" (identifier "iVar14") (<= "<=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_001b120d;" (goto "goto") (statement_identifier "LAB_001b120d") (; ";")))) (} "}")) (else_clause "else {\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" (else "else") (compound_statement "{\n            puVar9 = puVar10 + 4;\n            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));\n            uVar8 = (undefined1)((uint)fVar1 >> 8);\n            uVar12 = (undefined1)((uint)fVar1 >> 0x18);\n            local_48 = (undefined1)((uint)fVar1 >> 0x10);\n            if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }\n            *puVar10 = uVar12;\n            puVar10[3] = SUB41(fVar1,0);\n            puVar10[1] = local_48;\n            puVar10[2] = uVar8;\n            iVar14 = *(int *)(param_1 + 0x298);\n            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;\n          }" ({ "{") (expression_statement "puVar9 = puVar10 + 4;" (assignment_expression "puVar9 = puVar10 + 4" (identifier "puVar9") (= "=") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));" (assignment_expression "fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" (identifier "fVar1") (= "=") (cast_expression "(float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8))" (( "(") (binary_expression "lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8)" (binary_expression "lVar15 * (longdouble)" (identifier "lVar15") (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)(iVar5 + iVar11 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar11 * 8)" (( "(") (binary_expression "iVar5 + iVar11 * 8" (identifier "iVar5") (+ "+") (binary_expression "iVar11 * 8" (identifier "iVar11") (* "*") (number_literal "8"))) () ")")))) () ")")))) (; ";")) (expression_statement "uVar8 = (undefined1)((uint)fVar1 >> 8);" (assignment_expression "uVar8 = (undefined1)((uint)fVar1 >> 8)" (identifier "uVar8") (= "=") (call_expression "(undefined1)((uint)fVar1 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar12 = (undefined1)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (undefined1)((uint)fVar1 >> 0x18)" (identifier "uVar12") (= "=") (call_expression "(undefined1)((uint)fVar1 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_48 = (undefined1)((uint)fVar1 >> 0x10);" (assignment_expression "local_48 = (undefined1)((uint)fVar1 >> 0x10)" (identifier "local_48") (= "=") (call_expression "(undefined1)((uint)fVar1 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x20) != 0) {\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x20) != 0" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *puVar10 = SUB41(fVar1,0);\n              puVar10[1] = uVar8;\n              puVar10[3] = uVar12;\n              puVar10[2] = local_48;\n              iVar14 = *(int *)(param_1 + 0x298);\n              goto LAB_001b119b;\n            }" ({ "{") (expression_statement "*puVar10 = SUB41(fVar1,0);" (assignment_expression "*puVar10 = SUB41(fVar1,0)" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar10[1] = uVar8;" (assignment_expression "puVar10[1] = uVar8" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar10[3] = uVar12;" (assignment_expression "puVar10[3] = uVar12" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar10[2] = local_48;" (assignment_expression "puVar10[2] = local_48" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (goto_statement "goto LAB_001b119b;" (goto "goto") (statement_identifier "LAB_001b119b") (; ";")) (} "}"))) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar10[3] = SUB41(fVar1,0);" (assignment_expression "puVar10[3] = SUB41(fVar1,0)" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar10[1] = local_48;" (assignment_expression "puVar10[1] = local_48" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar10[2] = uVar8;" (assignment_expression "puVar10[2] = uVar8" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "iVar14 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x298)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (iVar14 <= iVar11 + 1) goto LAB_001b120d;" (if "if") (parenthesized_expression "(iVar14 <= iVar11 + 1)" (( "(") (binary_expression "iVar14 <= iVar11 + 1" (identifier "iVar14") (<= "<=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_001b120d;" (goto "goto") (statement_identifier "LAB_001b120d") (; ";"))) (} "}")))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2a8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001b1214;" (goto "goto") (statement_identifier "LAB_001b1214") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_001b1230;" (goto "goto") (statement_identifier "LAB_001b1230") (; ";")) (} "}"))) (goto_statement "goto LAB_001b1265;" (goto "goto") (statement_identifier "LAB_001b1265") (; ";")) (labeled_statement "code_r0x001b134a:\n  local_44 = local_44 + 1;" (statement_identifier "code_r0x001b134a") (: ":") (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar14 * 8" (identifier "iVar5") (+ "+") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" (if "if") (parenthesized_expression "(iVar13 <= local_44)" (( "(") (binary_expression "iVar13 <= local_44" (identifier "iVar13") (<= "<=") (identifier "local_44")) () ")")) (goto_statement "goto LAB_001b122a;" (goto "goto") (statement_identifier "LAB_001b122a") (; ";"))) (goto_statement "goto LAB_001b1150;" (goto "goto") (statement_identifier "LAB_001b1150") (; ";")) (labeled_statement "LAB_001b120d:\n  iVar13 = *(int *)(param_1 + 0x18);" (statement_identifier "LAB_001b120d") (: ":") (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (labeled_statement "LAB_001b1214:\n  local_44 = local_44 + 1;" (statement_identifier "LAB_001b1214") (: ":") (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar5 = iVar5 + iVar14 * 8;" (assignment_expression "iVar5 = iVar5 + iVar14 * 8" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar14 * 8" (identifier "iVar5") (+ "+") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iVar13 <= local_44) goto LAB_001b122a;" (if "if") (parenthesized_expression "(iVar13 <= local_44)" (( "(") (binary_expression "iVar13 <= local_44" (identifier "iVar13") (<= "<=") (identifier "local_44")) () ")")) (goto_statement "goto LAB_001b122a;" (goto "goto") (statement_identifier "LAB_001b122a") (; ";"))) (goto_statement "goto LAB_001b1150;" (goto "goto") (statement_identifier "LAB_001b1150") (; ";")) (labeled_statement "LAB_001b122a:\n  iVar5 = (int)puVar9 - (int)puVar6;" (statement_identifier "LAB_001b122a") (: ":") (expression_statement "iVar5 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar5 = (int)puVar9 - (int)puVar6" (identifier "iVar5") (= "=") (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")))) (; ";"))) (labeled_statement "LAB_001b1230:\n  SetStringInfoLength(uVar3,iVar5);" (statement_identifier "LAB_001b1230") (: ":") (expression_statement "SetStringInfoLength(uVar3,iVar5);" (call_expression "SetStringInfoLength(uVar3,iVar5)" (identifier "SetStringInfoLength") (argument_list "(uVar3,iVar5)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "FUN_001b0ea0(iVar2,uVar3);" (call_expression "FUN_001b0ea0(iVar2,uVar3)" (identifier "FUN_001b0ea0") (argument_list "(iVar2,uVar3)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" (identifier "local_34") (= "=") (binary_expression "local_34 + 1" (identifier "local_34") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= local_34)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) <= local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (identifier "local_34")) () ")")) (goto_statement "goto LAB_001b1265;" (goto "goto") (statement_identifier "LAB_001b1265") (; ";"))) (goto_statement "goto LAB_001b10d0;" (goto "goto") (statement_identifier "LAB_001b10d0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 function_1(type_2 *var_1,type_3 *exception)

{
  float fVar1;
  type_4 uVar5;
  type_5 *var_10;
  type_6 *string_info;
  type_7 *cache_view;
  type_8 *var_18;
  type_4 *puVar3;
  type_9 *pPVar4;
  char *value;
  type_4 *puVar6;
  type_4 *var_24;
  size_t sVar8;
  int var_23;
  type_4 uVar10;
  size_t var_28;
  type_10 var_25;
  type_4 local_48;
  int var_27;
  int var_30;
  
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("image != (Image *) NULL","MagickCore/signature.c",500,"SignatureImage");
  }
  if (var_1->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_2("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,
                  "SignatureImage");
  }
  if (var_1->debug != var_3) {
    var_4(TraceEvent,"MagickCore/signature.c","SignatureImage",0x1f7,"%s",var_1->filename);
  }
  var_10 = var_5();
  string_info = var_6(var_1->columns * var_1->number_channels * 4);
  cache_view = var_7(var_1,exception);
  if ((int)var_1->rows < 1) {
LAB_001b1265:
    var_8(cache_view);
    var_9(var_10);
    var_4(TraceEvent,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");
    if (var_10 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_2("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,
                    "GetSignatureDigest");
    }
    if (var_10->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
      var_2("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",
                    0x14c,"GetSignatureDigest");
    }
    value = var_11(var_10->digest);
    var_12(var_1,"signature");
    var_13(var_1,"signature",value,exception);
    var_14(value);
    var_15(string_info);
    var_16(var_10);
    return MagickTrue;
  }
  var_30 = 0;
LAB_001b10d0:
  var_18 = var_17(cache_view,0,var_30,var_1->columns,1,exception);
  if (var_18 != (type_8 *)0x0) {
    var_19(string_info,var_1->columns * var_1->number_channels * 4);
    puVar3 = var_20(string_info);
    sVar8 = var_1->columns;
    if (0 < (int)sVar8) {
      var_27 = 0;
      var_25 = (type_10)_DAT_002df2e0;
      puVar6 = puVar3;
LAB_001b1150:
      pPVar4 = var_1->channel_map;
      var_28 = var_1->number_channels;
      if ((pPVar4[6].traits != var_21) &&
         (var_18[pPVar4[6].offset] <= (double)DAT_002e14c0)) goto code_r0x001b134a;
      var_23 = 0;
      var_24 = puVar6;
      if (0 < (int)var_28) {
        do {
          puVar6 = var_24;
          if ((pPVar4[pPVar4[var_23].channel].traits & var_22) == var_21) {
LAB_001b119b:
            if ((int)var_28 <= var_23 + 1) goto LAB_001b120d;
          }
          else {
            puVar6 = var_24 + 4;
            fVar1 = (float)(var_25 * (type_10)var_18[var_23]);
            uVar5 = (type_4)((type_11)fVar1 >> 8);
            uVar10 = (type_4)((type_11)fVar1 >> 0x18);
            local_48 = (type_4)((type_11)fVar1 >> 0x10);
            if (var_10->lsb_first != var_3) {
              *var_24 = var_26(fVar1,0);
              var_24[1] = uVar5;
              var_24[3] = uVar10;
              var_24[2] = local_48;
              var_28 = var_1->number_channels;
              goto LAB_001b119b;
            }
            *var_24 = uVar10;
            var_24[3] = var_26(fVar1,0);
            var_24[1] = local_48;
            var_24[2] = uVar5;
            var_28 = var_1->number_channels;
            if ((int)var_28 <= var_23 + 1) goto LAB_001b120d;
          }
          var_23 = var_23 + 1;
          pPVar4 = var_1->channel_map;
          var_24 = puVar6;
        } while( true );
      }
      goto LAB_001b1214;
    }
    sVar8 = 0;
    goto LAB_001b1230;
  }
  goto LAB_001b1265;
code_r0x001b134a:
  var_27 = var_27 + 1;
  var_18 = var_18 + var_28;
  if ((int)sVar8 <= var_27) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b120d:
  sVar8 = var_1->columns;
LAB_001b1214:
  var_27 = var_27 + 1;
  var_18 = var_18 + var_28;
  if ((int)sVar8 <= var_27) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b122a:
  sVar8 = (int)puVar6 - (int)puVar3;
LAB_001b1230:
  var_19(string_info,sVar8);
  var_29(var_10,string_info);
  var_30 = var_30 + 1;
  if ((int)var_1->rows <= var_30) goto LAB_001b1265;
  goto LAB_001b10d0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 MASKED(int param_1,undefined4 param_2)

{
  float fVar1;
  undefined1 uVar8;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  undefined1 *puVar6;
  int iVar7;
  undefined1 *puVar9;
  undefined1 *puVar10;
  int iVar11;
  undefined1 uVar12;
  int iVar13;
  int iVar14;
  longdouble lVar15;
  undefined1 local_48;
  int local_44;
  int local_34;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/signature.c",500,"MASKED");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/signature.c",0x1f5,
                  "MASKED");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/signature.c","MASKED",0x1f7,&DAT_002f75ae,
                   param_1 + 0x318);
  }
  iVar2 = FUN_001b06a0();
  uVar3 = AcquireStringInfo(*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);
  uVar4 = AcquireVirtualCacheView(param_1,param_2);
  if (*(int *)(param_1 + 0x1c) < 1) {
LAB_001b1265:
    DestroyCacheView(uVar4);
    FUN_001b0930(iVar2);
    LogMagickEvent(0x8000,"MagickCore/signature.c","GetSignatureDigest",0x14a,"...");
    if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info != (SignatureInfo *) NULL","MagickCore/signature.c",0x14b,
                    "GetSignatureDigest");
    }
    if (*(int *)(iVar2 + 0x28) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("signature_info->signature == MagickCoreSignature","MagickCore/signature.c",
                    0x14c,"GetSignatureDigest");
    }
    uVar4 = StringInfoToHexString(*(undefined4 *)(iVar2 + 8));
    DeleteImageProperty(param_1,"signature");
    SetImageProperty(param_1,"signature",uVar4,param_2);
    DestroyString(uVar4);
    DestroyStringInfo(uVar3);
    FUN_001b0850(iVar2);
    return 1;
  }
  local_34 = 0;
LAB_001b10d0:
  iVar5 = GetCacheViewVirtualPixels(uVar4,0,local_34,*(undefined4 *)(param_1 + 0x18),1,param_2);
  if (iVar5 != 0) {
    SetStringInfoLength(uVar3,*(int *)(param_1 + 0x18) * *(int *)(param_1 + 0x298) * 4);
    puVar6 = (undefined1 *)GetStringInfoDatum(uVar3);
    iVar13 = *(int *)(param_1 + 0x18);
    if (0 < iVar13) {
      local_44 = 0;
      lVar15 = (longdouble)_DAT_002df2e0;
      puVar9 = puVar6;
LAB_001b1150:
      iVar7 = *(int *)(param_1 + 0x2a8);
      iVar14 = *(int *)(param_1 + 0x298);
      if ((*(int *)(iVar7 + 0x4c) != 0) &&
         (*(double *)(iVar5 + *(int *)(iVar7 + 0x50) * 8) <= (double)DAT_002e14c0))
      goto code_r0x001b134a;
      iVar11 = 0;
      puVar10 = puVar9;
      if (0 < iVar14) {
        do {
          puVar9 = puVar10;
          if ((*(byte *)(iVar7 + 4 + *(int *)(iVar7 + iVar11 * 0xc) * 0xc) & 2) == 0) {
LAB_001b119b:
            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;
          }
          else {
            puVar9 = puVar10 + 4;
            fVar1 = (float)(lVar15 * (longdouble)*(double *)(iVar5 + iVar11 * 8));
            uVar8 = (undefined1)((uint)fVar1 >> 8);
            uVar12 = (undefined1)((uint)fVar1 >> 0x18);
            local_48 = (undefined1)((uint)fVar1 >> 0x10);
            if (*(int *)(iVar2 + 0x20) != 0) {
              *puVar10 = SUB41(fVar1,0);
              puVar10[1] = uVar8;
              puVar10[3] = uVar12;
              puVar10[2] = local_48;
              iVar14 = *(int *)(param_1 + 0x298);
              goto LAB_001b119b;
            }
            *puVar10 = uVar12;
            puVar10[3] = SUB41(fVar1,0);
            puVar10[1] = local_48;
            puVar10[2] = uVar8;
            iVar14 = *(int *)(param_1 + 0x298);
            if (iVar14 <= iVar11 + 1) goto LAB_001b120d;
          }
          iVar11 = iVar11 + 1;
          iVar7 = *(int *)(param_1 + 0x2a8);
          puVar10 = puVar9;
        } while( true );
      }
      goto LAB_001b1214;
    }
    iVar5 = 0;
    goto LAB_001b1230;
  }
  goto LAB_001b1265;
code_r0x001b134a:
  local_44 = local_44 + 1;
  iVar5 = iVar5 + iVar14 * 8;
  if (iVar13 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b120d:
  iVar13 = *(int *)(param_1 + 0x18);
LAB_001b1214:
  local_44 = local_44 + 1;
  iVar5 = iVar5 + iVar14 * 8;
  if (iVar13 <= local_44) goto LAB_001b122a;
  goto LAB_001b1150;
LAB_001b122a:
  iVar5 = (int)puVar9 - (int)puVar6;
LAB_001b1230:
  SetStringInfoLength(uVar3,iVar5);
  FUN_001b0ea0(iVar2,uVar3);
  local_34 = local_34 + 1;
  if (*(int *)(param_1 + 0x1c) <= local_34) goto LAB_001b1265;
  goto LAB_001b10d0;
}

