
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

DelegateInfo ** GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)

{
  int iVar1;
  DelegateInfo **ppDVar2;
  DelegateInfo *pDVar3;
  int iVar4;
  int iVar5;
  undefined *puVar6;
  int *piVar7;
  undefined4 uVar8;
  DelegateInfo **ppDVar9;
  size_t sVar10;
  size_t sVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  undefined *puVar15;
  code *pcVar16;
  
  if (number_delegates == (size_t *)0x0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  }
  else if (pattern != (char *)0x0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,
               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);
    *number_delegates = 0;
    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,
                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);
    puVar15 = PTR_DAT_003a88cc;
    if (iVar1 != 0) {
      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)
                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));
      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);
      puVar6 = PTR_DAT_003a88cc;
      if (ppDVar2 != (DelegateInfo **)0x0) {
        sVar10 = 0;
        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));
        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));
        pDVar3 = (DelegateInfo *)
                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)
                           (*(undefined4 *)(puVar15 + -0x50cc));
        ppDVar9 = ppDVar2;
        sVar11 = sVar10;
        if (pDVar3 != (DelegateInfo *)0x0) {
          do {
            sVar10 = sVar11;
            if ((pDVar3->stealth == MagickFalse) &&
               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),
                iVar1 != 0 ||
                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),
                iVar1 != 0)))) {
              sVar10 = sVar11 + 1;
              ppDVar2[sVar11] = pDVar3;
            }
            pDVar3 = (DelegateInfo *)
                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)
                               (*(undefined4 *)(puVar15 + -0x50cc));
            sVar11 = sVar10;
          } while (pDVar3 != (DelegateInfo *)0x0);
          ppDVar9 = ppDVar2 + sVar10;
        }
        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));
        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);
        *number_delegates = sVar10;
        *ppDVar9 = (DelegateInfo *)0x0;
        return ppDVar2;
      }
    }
    return (DelegateInfo **)0x0;
  }
  uVar8 = 0x540;
  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);
  puVar6 = PTR_LAB_003a88e0 + 0x45e0;
  puVar15 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  if (puVar6 == (undefined *)0x0) {
    ppDVar2 = (DelegateInfo **)
              (**(code **)(puVar15 + 0x31dc88))
                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,
                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,
                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);
    return ppDVar2;
  }
  iVar1 = *(int *)(puVar15 + 0x31cf68);
  (**(code **)(puVar15 + 0x31d860))
            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,
             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6);
  if (piVar7 == (int *)0x0) {
    ppDVar2 = (DelegateInfo **)
              (**(code **)(puVar15 + 0x31dc88))
                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,
                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);
    return ppDVar2;
  }
  iVar1 = *(int *)(puVar15 + 0x31cf68);
  pcVar16 = *(code **)(puVar15 + 0x31d92c);
  *piVar7 = 0;
  iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);
  if (iVar1 != 0) {
    iVar14 = *(int *)(puVar15 + 0x31cf4c);
    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));
    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);
    if (ppDVar2 != (DelegateInfo **)0x0) {
      iVar1 = *(int *)(puVar15 + 0x31cf4c);
      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));
      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));
      if (iVar4 == 0) {
        iVar12 = 0;
        ppDVar9 = ppDVar2;
      }
      else {
        iVar12 = 0;
        do {
          ppDVar9 = ppDVar2 + iVar12;
          iVar13 = iVar12;
          if (*(int *)(iVar4 + 0x1c) == 0) {
            uVar8 = *(undefined4 *)(iVar4 + 4);
            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);
            if (iVar5 == 0) {
LAB_0008baa8:
              uVar8 = *(undefined4 *)(iVar4 + 8);
              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);
              if (iVar4 != 0) {
                iVar13 = iVar13 + 1;
                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);
                *ppDVar9 = pDVar3;
                ppDVar9 = ppDVar2 + iVar13;
              }
              goto LAB_0008bac8;
            }
            iVar13 = iVar12 + 1;
            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);
            iVar5 = *(int *)(iVar4 + 0x1c);
            *ppDVar9 = pDVar3;
            ppDVar9 = ppDVar2 + iVar12 + 1;
            if (iVar5 == 0) goto LAB_0008baa8;
            pcVar16 = *(code **)(puVar15 + 0x31d990);
            iVar12 = iVar13;
          }
          else {
LAB_0008bac8:
            pcVar16 = *(code **)(puVar15 + 0x31d990);
            iVar12 = iVar13;
          }
          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));
        } while (iVar4 != 0);
      }
      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);
      *piVar7 = iVar12;
      *ppDVar9 = (DelegateInfo *)0x0;
      return ppDVar2;
    }
  }
  return (DelegateInfo **)0x0;
}



undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)

{
  int iVar1;
  undefined4 *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined *puVar6;
  int *piVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  int iVar10;
  int iVar11;
  undefined *puVar12;
  code *pcVar13;
  
  if (param_2 == (int *)0x0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  }
  else if (param_1 != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,
               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);
    *param_2 = 0;
    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,
                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);
    puVar12 = PTR_DAT_003a88cc;
    if (iVar1 != 0) {
      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)
                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));
      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);
      puVar6 = PTR_DAT_003a88cc;
      if (puVar2 != (undefined4 *)0x0) {
        iVar1 = 0;
        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));
        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));
        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))
        ;
        puVar9 = puVar2;
        iVar11 = iVar1;
        if (iVar3 != 0) {
          do {
            iVar1 = iVar11;
            if ((*(int *)(iVar3 + 0x1c) == 0) &&
               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)
                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||
                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)
                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {
              iVar1 = iVar11 + 1;
              puVar2[iVar11] = iVar3;
            }
            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)
                              (*(undefined4 *)(puVar12 + -0x50cc));
            iVar11 = iVar1;
          } while (iVar3 != 0);
          puVar9 = puVar2 + iVar1;
        }
        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));
        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);
        *param_2 = iVar1;
        *puVar9 = 0;
        return puVar2;
      }
    }
    return (undefined4 *)0x0;
  }
  uVar8 = 0x540;
  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);
  puVar6 = PTR_LAB_003a88e0 + 0x45e0;
  puVar12 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  if (puVar6 == (undefined *)0x0) {
    puVar2 = (undefined4 *)
             (**(code **)(puVar12 + 0x31dc88))
                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8
                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);
    return puVar2;
  }
  iVar1 = *(int *)(puVar12 + 0x31cf68);
  (**(code **)(puVar12 + 0x31d860))
            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,
             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);
  if (piVar7 == (int *)0x0) {
    puVar2 = (undefined4 *)
             (**(code **)(puVar12 + 0x31dc88))
                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,
                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);
    return puVar2;
  }
  iVar1 = *(int *)(puVar12 + 0x31cf68);
  pcVar13 = *(code **)(puVar12 + 0x31d92c);
  *piVar7 = 0;
  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);
  if (iVar1 != 0) {
    iVar11 = *(int *)(puVar12 + 0x31cf4c);
    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));
    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);
    if (puVar2 != (undefined4 *)0x0) {
      iVar1 = *(int *)(puVar12 + 0x31cf4c);
      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));
      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));
      if (iVar3 == 0) {
        iVar4 = 0;
        puVar9 = puVar2;
      }
      else {
        iVar4 = 0;
        do {
          puVar9 = puVar2 + iVar4;
          iVar10 = iVar4;
          if (*(int *)(iVar3 + 0x1c) == 0) {
            uVar8 = *(undefined4 *)(iVar3 + 4);
            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);
            if (iVar5 == 0) {
LAB_0008baa8:
              uVar8 = *(undefined4 *)(iVar3 + 8);
              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);
              if (iVar3 != 0) {
                iVar10 = iVar10 + 1;
                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);
                *puVar9 = uVar8;
                puVar9 = puVar2 + iVar10;
              }
              goto LAB_0008bac8;
            }
            iVar10 = iVar4 + 1;
            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);
            iVar5 = *(int *)(iVar3 + 0x1c);
            *puVar9 = uVar8;
            puVar9 = puVar2 + iVar4 + 1;
            if (iVar5 == 0) goto LAB_0008baa8;
            pcVar13 = *(code **)(puVar12 + 0x31d990);
            iVar4 = iVar10;
          }
          else {
LAB_0008bac8:
            pcVar13 = *(code **)(puVar12 + 0x31d990);
            iVar4 = iVar10;
          }
          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));
        } while (iVar3 != 0);
      }
      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);
      *piVar7 = iVar4;
      *puVar9 = 0;
      return puVar2;
    }
  }
  return (undefined4 *)0x0;
}


lui gp,0x32
addiu gp,gp,0x5194
addu gp,gp,t9
addiu sp,sp,-0x40
sw gp,0x18(sp)
sw ra,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
beq a1,zero,0x0008b938
_sw s0,0x20(sp)
beq a0,zero,0x0008b95c
_or s3,a0,zero
lw v0,-0x7fcc(gp)
or s5,a1,zero
or s0,a2,zero
lw a1,-0x7fc8(gp)
lw a2,-0x7fc8(gp)
li a3,0x541
lw t9,-0x76d0(gp)
addiu v0,v0,-0x62ac
ori a0,zero,0x8000
sw s3,0x14(sp)
addiu a2,a2,0x1d00
sw v0,0x10(sp)
jalr t9
_addiu a1,a1,-0x14f8
or a2,s0,zero
lw gp,0x18(sp)
sw zero,0x0(s5)
lw a1,-0x7fc8(gp)
lw t9,-0x7604(gp)
addiu a1,a1,0x6c9c
jalr t9
_or a0,a1,zero
beq v0,zero,0x0008b900
_lw gp,0x18(sp)
lw s2,-0x7fe4(gp)
lw t9,-0x74bc(gp)
jalr t9
_lw a0,-0x50cc(s2)
li a1,0x4
lw gp,0x18(sp)
lw t9,-0x73a4(gp)
jalr t9
_addiu a0,v0,0x1
lw gp,0x18(sp)
beq v0,zero,0x0008b900
_or s4,v0,zero
lw s6,-0x7fe4(gp)
or s1,zero,zero
lw t9,-0x71c8(gp)
jalr t9
_lw a0,-0x50d0(s6)
lw gp,0x18(sp)
lw t9,-0x7378(gp)
jalr t9
_lw a0,-0x50cc(s2)
lw gp,0x18(sp)
lw t9,-0x75a0(gp)
jalr t9
_lw a0,-0x50cc(s2)
lw gp,0x18(sp)
beq v0,zero,0x0008b930
_or s0,v0,zero
lw v0,0x1c(s0)
bne v0,zero,0x0008b884
_lw t9,-0x75a0(gp)
lw t9,-0x7268(gp)
or a2,zero,zero
lw a0,0x4(s0)
jalr t9
_or a1,s3,zero
bne v0,zero,0x0008b870
_lw gp,0x18(sp)
lw t9,-0x7268(gp)
or a2,zero,zero
lw a0,0x8(s0)
jalr t9
_or a1,s3,zero
beq v0,zero,0x0008b880
_lw gp,0x18(sp)
sll v0,s1,0x2
addiu s1,s1,0x1
addu v0,s4,v0
sw s0,0x0(v0)
lw t9,-0x75a0(gp)
jalr t9
_lw a0,-0x50cc(s2)
lw gp,0x18(sp)
bne v0,zero,0x0008b82c
_or s0,v0,zero
sll s0,s1,0x2
addu s0,s4,s0
lw t9,-0x7530(gp)
jalr t9
_lw a0,-0x50d0(s6)
li a2,0x4
lw gp,0x18(sp)
or a1,s1,zero
or a0,s4,zero
lw a3,-0x7e68(gp)
lw t9,-0x6fdc(gp)
jalr t9
_addiu a3,a3,-0x6194
or v0,s4,zero
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
sw s1,0x0(s5)
sw zero,0x0(s0)
lw s5,0x34(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x40
lw ra,0x3c(sp)
or s4,zero,zero
lw s6,0x38(sp)
or v0,s4,zero
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x40
b 0x0008b8a0
_or s0,s4,zero
lw a3,-0x7fc8(gp)
li a2,0x53f
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,0x1d14
addiu a1,a1,-0x14f8
jalr t9
_addiu a0,a0,0x1810
lw a3,-0x7fc8(gp)
li a2,0x540
lw a1,-0x7fc8(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,0x1d14
addiu a1,a1,-0x14f8
jalr t9
_addiu a0,a0,0x45e0
(translation_unit "undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}\n\n" (function_definition "undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" type_identifier (pointer_declarator "* GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" * (function_declarator "GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (if_statement "if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) }) (else_clause "else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" else (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);" (assignment_expression "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" identifier = (call_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" (parenthesized_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)" ( (pointer_expression "*(code *)PTR_GetDelegateInfo_003a92ac" * (cast_expression "(code *)PTR_GetDelegateInfo_003a92ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar12 = PTR_DAT_003a88cc;" (assignment_expression "puVar12 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" { (expression_statement "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));" (assignment_expression "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)" ( (pointer_expression "*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" * (cast_expression "(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (expression_statement "puVar6 = PTR_DAT_003a88cc;" (assignment_expression "puVar6 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));" (call_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" (parenthesized_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)" ( (pointer_expression "*(code *)PTR_LockSemaphoreInfo_003a96e8" * (cast_expression "(code *)PTR_LockSemaphoreInfo_003a96e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));" (call_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)" ( (pointer_expression "*(code *)PTR_ResetLinkedListIterator_003a9538" * (cast_expression "(code *)PTR_ResetLinkedListIterator_003a9538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" identifier = identifier) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" { (do_statement "do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);" do (compound_statement "{\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          }" { (expression_statement "iVar1 = iVar11;" (assignment_expression "iVar1 = iVar11" identifier = identifier) ;) (if_statement "if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" if (parenthesized_expression "((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))))" ( (binary_expression "(*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" ( (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))" ( (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar3 + 4),param_1,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) , identifier , number_literal )))) , (binary_expression "iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (binary_expression "iVar4 != 0" identifier != number_literal) || (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar3 + 8),param_1,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , identifier , number_literal )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" { (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar2[iVar11] = iVar3;" (assignment_expression "puVar2[iVar11] = iVar3" (subscript_expression "puVar2[iVar11]" identifier [ identifier ]) = identifier) ;) })) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "puVar9 = puVar2 + iVar1;" (assignment_expression "puVar9 = puVar2 + iVar1" identifier = (binary_expression "puVar2 + iVar1" identifier + identifier)) ;) })) (expression_statement "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));" (call_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0))" (parenthesized_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)" ( (pointer_expression "*(code *)PTR_UnlockSemaphoreInfo_003a9380" * (cast_expression "(code *)PTR_UnlockSemaphoreInfo_003a9380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar6 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x50d0)" * (cast_expression "(undefined4 *)(puVar6 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x50d0)" ( (binary_expression "puVar6 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);" (call_expression "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" (parenthesized_expression "(*(code *)PTR_qsort_003a98d4)" ( (pointer_expression "*(code *)PTR_qsort_003a98d4" * (cast_expression "(code *)PTR_qsort_003a98d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" ( identifier , identifier , number_literal , (binary_expression "PTR_LAB_003a8a48 + -0x6194" identifier + number_literal) ))) ;) (expression_statement "*param_2 = iVar1;" (assignment_expression "*param_2 = iVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))) (expression_statement "uVar8 = 0x540;" (assignment_expression "uVar8 = 0x540" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);" (assignment_expression "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" identifier = (cast_expression "(int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) )))) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x45e0;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x45e0" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x45e0" identifier + number_literal)) ;) (expression_statement "puVar12 = PTR___assert_fail_003a9608;" (assignment_expression "puVar12 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( identifier , identifier , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar12 + 0x31dc88)" * (pointer_expression "*(code **)(puVar12 + 0x31dc88)" * (cast_expression "(code **)(puVar12 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dc88)" ( (binary_expression "puVar12 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar12 + 0x31cf60) + 0x45e0" (pointer_expression "*(int *)(puVar12 + 0x31cf60)" * (cast_expression "(int *)(puVar12 + 0x31cf60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf60)" ( (binary_expression "puVar12 + 0x31cf60" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar12 + 0x31cf68) + -0x14f8" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);" (call_expression "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d860))" ( (pointer_expression "**(code **)(puVar12 + 0x31d860)" * (pointer_expression "*(code **)(puVar12 + 0x31d860)" * (cast_expression "(code **)(puVar12 + 0x31d860)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d860)" ( (binary_expression "puVar12 + 0x31d860" identifier + number_literal) ))))) )) (argument_list "(0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" ( number_literal , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1ce0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf64) + -0x62ac" (pointer_expression "*(int *)(puVar12 + 0x31cf64)" * (cast_expression "(int *)(puVar12 + 0x31cf64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf64)" ( (binary_expression "puVar12 + 0x31cf64" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar12 + 0x31dc88)" * (pointer_expression "*(code **)(puVar12 + 0x31dc88)" * (cast_expression "(code **)(puVar12 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dc88)" ( (binary_expression "puVar12 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1810" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d92c);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d92c)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d92c)" * (cast_expression "(code **)(puVar12 + 0x31d92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d92c)" ( (binary_expression "puVar12 + 0x31d92c" identifier + number_literal) ))))) ;) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);" (assignment_expression "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" identifier = (call_expression "(*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" ( (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" { (expression_statement "iVar11 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" * (cast_expression "(int *)(puVar12 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf4c)" ( (binary_expression "puVar12 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da74))" ( (pointer_expression "**(code **)(puVar12 + 0x31da74)" * (pointer_expression "*(code **)(puVar12 + 0x31da74)" * (cast_expression "(code **)(puVar12 + 0x31da74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31da74)" ( (binary_expression "puVar12 + 0x31da74" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" (parenthesized_expression "(**(code **)(puVar12 + 0x31db8c))" ( (pointer_expression "**(code **)(puVar12 + 0x31db8c)" * (pointer_expression "*(code **)(puVar12 + 0x31db8c)" * (cast_expression "(code **)(puVar12 + 0x31db8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31db8c)" ( (binary_expression "puVar12 + 0x31db8c" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" { (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" * (cast_expression "(int *)(puVar12 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf4c)" ( (binary_expression "puVar12 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dd68))" ( (pointer_expression "**(code **)(puVar12 + 0x31dd68)" * (pointer_expression "*(code **)(puVar12 + 0x31dd68)" * (cast_expression "(code **)(puVar12 + 0x31dd68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dd68)" ( (binary_expression "puVar12 + 0x31dd68" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));" (call_expression "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dbb8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dbb8)" * (pointer_expression "*(code **)(puVar12 + 0x31dbb8)" * (cast_expression "(code **)(puVar12 + 0x31dbb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dbb8)" ( (binary_expression "puVar12 + 0x31dbb8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31d990))" ( (pointer_expression "**(code **)(puVar12 + 0x31d990)" * (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" identifier = identifier) ;) }) (else_clause "else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" else (compound_statement "{\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);" do (compound_statement "{\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        }" { (expression_statement "puVar9 = puVar2 + iVar4;" (assignment_expression "puVar9 = puVar2 + iVar4" identifier = (binary_expression "puVar2 + iVar4" identifier + identifier)) ;) (expression_statement "iVar10 = iVar4;" (assignment_expression "iVar10 = iVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" { (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" * (cast_expression "(code **)(puVar12 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dcc8)" ( (binary_expression "puVar12 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" { (labeled_statement "LAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);" statement_identifier : (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" * (cast_expression "(code **)(puVar12 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dcc8)" ( (binary_expression "puVar12 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" identifier = (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" ( (pointer_expression "**(code **)(puVar12 + 0x31d734)" * (pointer_expression "*(code **)(puVar12 + 0x31d734)" * (cast_expression "(code **)(puVar12 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d734)" ( (binary_expression "puVar12 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar2 + iVar10;" (assignment_expression "puVar9 = puVar2 + iVar10" identifier = (binary_expression "puVar2 + iVar10" identifier + identifier)) ;) })) (goto_statement "goto LAB_0008bac8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar4 + 1;" (assignment_expression "iVar10 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" identifier = (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" ( (pointer_expression "**(code **)(puVar12 + 0x31d734)" * (pointer_expression "*(code **)(puVar12 + 0x31d734)" * (cast_expression "(code **)(puVar12 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d734)" ( (binary_expression "puVar12 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "iVar5 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar2 + iVar4 + 1;" (assignment_expression "puVar9 = puVar2 + iVar4 + 1" identifier = (binary_expression "puVar2 + iVar4 + 1" (binary_expression "puVar2 + iVar4" identifier + identifier) + number_literal)) ;) (if_statement "if (iVar5 == 0) goto LAB_0008baa8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008baa8;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" identifier = identifier) ;) }) (else_clause "else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" else (compound_statement "{\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" { (labeled_statement "LAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);" statement_identifier : (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) ;)) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" identifier = identifier) ;) }))) (expression_statement "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) }))) (expression_statement "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da00))" ( (pointer_expression "**(code **)(puVar12 + 0x31da00)" * (pointer_expression "*(code **)(puVar12 + 0x31da00)" * (cast_expression "(code **)(puVar12 + 0x31da00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31da00)" ( (binary_expression "puVar12 + 0x31da00" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);" (call_expression "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31df54))" ( (pointer_expression "**(code **)(puVar12 + 0x31df54)" * (pointer_expression "*(code **)(puVar12 + 0x31df54)" * (cast_expression "(code **)(puVar12 + 0x31df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31df54)" ( (binary_expression "puVar12 + 0x31df54" identifier + number_literal) ))))) )) (argument_list "(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(puVar12 + 0x31d0c8) + -0x61b0" (pointer_expression "*(int *)(puVar12 + 0x31d0c8)" * (cast_expression "(int *)(puVar12 + 0x31d0c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31d0c8)" ( (binary_expression "puVar12 + 0x31d0c8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nDelegateInfo ** GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)\n\n{\n  int iVar1;\n  DelegateInfo **ppDVar2;\n  DelegateInfo *pDVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  DelegateInfo **ppDVar9;\n  size_t sVar10;\n  size_t sVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  if (number_delegates == (size_t *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar15 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  (**(code **)(puVar15 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  pcVar16 = *(code **)(puVar15 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar14 = *(int *)(puVar15 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));\n    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);\n    if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }\n  }\n  return (DelegateInfo **)0x0;\n}\n\n" comment (function_definition "DelegateInfo ** GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)\n\n{\n  int iVar1;\n  DelegateInfo **ppDVar2;\n  DelegateInfo *pDVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  DelegateInfo **ppDVar9;\n  size_t sVar10;\n  size_t sVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  if (number_delegates == (size_t *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar15 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  (**(code **)(puVar15 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  pcVar16 = *(code **)(puVar15 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar14 = *(int *)(puVar15 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));\n    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);\n    if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }\n  }\n  return (DelegateInfo **)0x0;\n}" type_identifier (pointer_declarator "** GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)" * (pointer_declarator "* GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)" * (function_declarator "GetDelegateInfoList(char *pattern,size_t *number_delegates,ExceptionInfo *exception)" identifier (parameter_list "(char *pattern,size_t *number_delegates,ExceptionInfo *exception)" ( (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "size_t *number_delegates" primitive_type (pointer_declarator "*number_delegates" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))))) (compound_statement "{\n  int iVar1;\n  DelegateInfo **ppDVar2;\n  DelegateInfo *pDVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  DelegateInfo **ppDVar9;\n  size_t sVar10;\n  size_t sVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  if (number_delegates == (size_t *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar15 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  (**(code **)(puVar15 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }\n  iVar1 = *(int *)(puVar15 + 0x31cf68);\n  pcVar16 = *(code **)(puVar15 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar14 = *(int *)(puVar15 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));\n    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);\n    if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }\n  }\n  return (DelegateInfo **)0x0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "DelegateInfo **ppDVar2;" type_identifier (pointer_declarator "**ppDVar2" * (pointer_declarator "*ppDVar2" * identifier)) ;) (declaration "DelegateInfo *pDVar3;" type_identifier (pointer_declarator "*pDVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "DelegateInfo **ppDVar9;" type_identifier (pointer_declarator "**ppDVar9" * (pointer_declarator "*ppDVar9" * identifier)) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (if_statement "if (number_delegates == (size_t *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }" if (parenthesized_expression "(number_delegates == (size_t *)0x0)" ( (binary_expression "number_delegates == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) }) (else_clause "else if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }" else (if_statement "if (pattern != (char *)0x0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }" if (parenthesized_expression "(pattern != (char *)0x0)" ( (binary_expression "pattern != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);\n    *number_delegates = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);\n    puVar15 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }\n    return (DelegateInfo **)0x0;\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,pattern)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "*number_delegates = 0;" (assignment_expression "*number_delegates = 0" (pointer_expression "*number_delegates" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception);" (assignment_expression "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception)" identifier = (call_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception)" (parenthesized_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)" ( (pointer_expression "*(code *)PTR_GetDelegateInfo_003a92ac" * (cast_expression "(code *)PTR_GetDelegateInfo_003a92ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,exception)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar15 = PTR_DAT_003a88cc;" (assignment_expression "puVar15 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }\n    }" { (expression_statement "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));" (assignment_expression "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)" ( (pointer_expression "*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" * (cast_expression "(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);" (assignment_expression "ppDVar2 = (DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" identifier = (cast_expression "(DelegateInfo **)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (expression_statement "puVar6 = PTR_DAT_003a88cc;" (assignment_expression "puVar6 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (ppDVar2 != (DelegateInfo **)0x0) {\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }" if (parenthesized_expression "(ppDVar2 != (DelegateInfo **)0x0)" ( (binary_expression "ppDVar2 != (DelegateInfo **)0x0" identifier != (cast_expression "(DelegateInfo **)0x0" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        sVar10 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));\n        pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));\n        ppDVar9 = ppDVar2;\n        sVar11 = sVar10;\n        if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);\n        *number_delegates = sVar10;\n        *ppDVar9 = (DelegateInfo *)0x0;\n        return ppDVar2;\n      }" { (expression_statement "sVar10 = 0;" (assignment_expression "sVar10 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));" (call_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" (parenthesized_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)" ( (pointer_expression "*(code *)PTR_LockSemaphoreInfo_003a96e8" * (cast_expression "(code *)PTR_LockSemaphoreInfo_003a96e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc));" (call_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar15 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)" ( (pointer_expression "*(code *)PTR_ResetLinkedListIterator_003a9538" * (cast_expression "(code *)PTR_ResetLinkedListIterator_003a9538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar15 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar15 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar15 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x50cc)" ( (binary_expression "puVar15 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc));" (assignment_expression "pDVar3 = (DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc))" identifier = (cast_expression "(DelegateInfo *)\n                 (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc))" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                           (*(undefined4 *)(puVar15 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar15 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar15 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar15 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x50cc)" ( (binary_expression "puVar15 + -0x50cc" identifier + number_literal) )))) ))))) ;) (expression_statement "ppDVar9 = ppDVar2;" (assignment_expression "ppDVar9 = ppDVar2" identifier = identifier) ;) (expression_statement "sVar11 = sVar10;" (assignment_expression "sVar11 = sVar10" identifier = identifier) ;) (if_statement "if (pDVar3 != (DelegateInfo *)0x0) {\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }" if (parenthesized_expression "(pDVar3 != (DelegateInfo *)0x0)" ( (binary_expression "pDVar3 != (DelegateInfo *)0x0" identifier != (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);\n          ppDVar9 = ppDVar2 + sVar10;\n        }" { (do_statement "do {\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          } while (pDVar3 != (DelegateInfo *)0x0);" do (compound_statement "{\n            sVar10 = sVar11;\n            if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }\n            pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));\n            sVar11 = sVar10;\n          }" { (expression_statement "sVar10 = sVar11;" (assignment_expression "sVar10 = sVar11" identifier = identifier) ;) (if_statement "if ((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))) {\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }" if (parenthesized_expression "((pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0))))" ( (binary_expression "(pDVar3->stealth == MagickFalse) &&\n               ((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))" (parenthesized_expression "(pDVar3->stealth == MagickFalse)" ( (binary_expression "pDVar3->stealth == MagickFalse" (field_expression "pDVar3->stealth" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "((iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)))" ( (parenthesized_expression "(iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0))" ( (comma_expression "iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0),\n                iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)" (assignment_expression "iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)(pDVar3->decode,pattern,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pDVar3->decode,pattern,0)" ( (field_expression "pDVar3->decode" identifier -> field_identifier) , identifier , number_literal )))) , (binary_expression "iVar1 != 0 ||\n                (iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)" (binary_expression "iVar1 != 0" identifier != number_literal) || (parenthesized_expression "(iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0)" ( (comma_expression "iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0),\n                iVar1 != 0" (assignment_expression "iVar1 = (*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)(pDVar3->encode,pattern,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pDVar3->encode,pattern,0)" ( (field_expression "pDVar3->encode" identifier -> field_identifier) , identifier , number_literal )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n              sVar10 = sVar11 + 1;\n              ppDVar2[sVar11] = pDVar3;\n            }" { (expression_statement "sVar10 = sVar11 + 1;" (assignment_expression "sVar10 = sVar11 + 1" identifier = (binary_expression "sVar11 + 1" identifier + number_literal)) ;) (expression_statement "ppDVar2[sVar11] = pDVar3;" (assignment_expression "ppDVar2[sVar11] = pDVar3" (subscript_expression "ppDVar2[sVar11]" identifier [ identifier ]) = identifier) ;) })) (expression_statement "pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc));" (assignment_expression "pDVar3 = (DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc))" identifier = (cast_expression "(DelegateInfo *)\n                     (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc))" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                               (*(undefined4 *)(puVar15 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar15 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar15 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar15 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x50cc)" ( (binary_expression "puVar15 + -0x50cc" identifier + number_literal) )))) ))))) ;) (expression_statement "sVar11 = sVar10;" (assignment_expression "sVar11 = sVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pDVar3 != (DelegateInfo *)0x0)" ( (binary_expression "pDVar3 != (DelegateInfo *)0x0" identifier != (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "ppDVar9 = ppDVar2 + sVar10;" (assignment_expression "ppDVar9 = ppDVar2 + sVar10" identifier = (binary_expression "ppDVar2 + sVar10" identifier + identifier)) ;) })) (expression_statement "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));" (call_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0))" (parenthesized_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)" ( (pointer_expression "*(code *)PTR_UnlockSemaphoreInfo_003a9380" * (cast_expression "(code *)PTR_UnlockSemaphoreInfo_003a9380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar6 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x50d0)" * (cast_expression "(undefined4 *)(puVar6 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x50d0)" ( (binary_expression "puVar6 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194);" (call_expression "(*(code *)PTR_qsort_003a98d4)(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194)" (parenthesized_expression "(*(code *)PTR_qsort_003a98d4)" ( (pointer_expression "*(code *)PTR_qsort_003a98d4" * (cast_expression "(code *)PTR_qsort_003a98d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppDVar2,sVar10,4,PTR_LAB_003a8a48 + -0x6194)" ( identifier , identifier , number_literal , (binary_expression "PTR_LAB_003a8a48 + -0x6194" identifier + number_literal) ))) ;) (expression_statement "*number_delegates = sVar10;" (assignment_expression "*number_delegates = sVar10" (pointer_expression "*number_delegates" * identifier) = identifier) ;) (expression_statement "*ppDVar9 = (DelegateInfo *)0x0;" (assignment_expression "*ppDVar9 = (DelegateInfo *)0x0" (pointer_expression "*ppDVar9" * identifier) = (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return ppDVar2;" return identifier ;) })) })) (return_statement "return (DelegateInfo **)0x0;" return (cast_expression "(DelegateInfo **)0x0" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ;) })))) (expression_statement "uVar8 = 0x540;" (assignment_expression "uVar8 = 0x540" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);" (assignment_expression "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" identifier = (cast_expression "(int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) )))) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x45e0;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x45e0" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x45e0" identifier + number_literal)) ;) (expression_statement "puVar15 = PTR___assert_fail_003a9608;" (assignment_expression "puVar15 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( identifier , identifier , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }" { (expression_statement "ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);" (assignment_expression "ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar15 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar15 + 0x31dc88)" * (pointer_expression "*(code **)(puVar15 + 0x31dc88)" * (cast_expression "(code **)(puVar15 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dc88)" ( (binary_expression "puVar15 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar15 + 0x31cf60) + 0x45e0,\n                         *(int *)(puVar15 + 0x31cf68) + -0x14f8,0x5a0,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar15 + 0x31cf60) + 0x45e0" (pointer_expression "*(int *)(puVar15 + 0x31cf60)" * (cast_expression "(int *)(puVar15 + 0x31cf60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf60)" ( (binary_expression "puVar15 + 0x31cf60" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar15 + 0x31cf68) + -0x14f8" (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return ppDVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar15 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar15 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6);" (call_expression "(**(code **)(puVar15 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6)" (parenthesized_expression "(**(code **)(puVar15 + 0x31d860))" ( (pointer_expression "**(code **)(puVar15 + 0x31d860)" * (pointer_expression "*(code **)(puVar15 + 0x31d860)" * (cast_expression "(code **)(puVar15 + 0x31d860)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d860)" ( (binary_expression "puVar15 + 0x31d860" identifier + number_literal) ))))) )) (argument_list "(0x8000,iVar1 + -0x14f8,*(int *)(puVar15 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar15 + 0x31cf64) + -0x62ac,puVar6)" ( number_literal , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , (binary_expression "*(int *)(puVar15 + 0x31cf68) + 0x1ce0" (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x31cf64) + -0x62ac" (pointer_expression "*(int *)(puVar15 + 0x31cf64)" * (cast_expression "(int *)(puVar15 + 0x31cf64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf64)" ( (binary_expression "puVar15 + 0x31cf64" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);\n    return ppDVar2;\n  }" { (expression_statement "ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0);" (assignment_expression "ppDVar2 = (DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(DelegateInfo **)\n              (**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar15 + 0x31dc88))\n                        (*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar15 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar15 + 0x31dc88)" * (pointer_expression "*(code **)(puVar15 + 0x31dc88)" * (cast_expression "(code **)(puVar15 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dc88)" ( (binary_expression "puVar15 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar15 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                         *(int *)(puVar15 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar15 + 0x31cf68) + 0x1810" (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return ppDVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar15 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar15 + 0x31cf68)" * (cast_expression "(int *)(puVar15 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf68)" ( (binary_expression "puVar15 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x31d92c);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x31d92c)" identifier = (pointer_expression "*(code **)(puVar15 + 0x31d92c)" * (cast_expression "(code **)(puVar15 + 0x31d92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d92c)" ( (binary_expression "puVar15 + 0x31d92c" identifier + number_literal) ))))) ;) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);" (assignment_expression "iVar1 = (*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" identifier = (call_expression "(*pcVar16)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" ( (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    iVar14 = *(int *)(puVar15 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));\n    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);\n    if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = *(int *)(puVar15 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));\n    ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);\n    if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }\n  }" { (expression_statement "iVar14 = *(int *)(puVar15 + 0x31cf4c);" (assignment_expression "iVar14 = *(int *)(puVar15 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar15 + 0x31cf4c)" * (cast_expression "(int *)(puVar15 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf4c)" ( (binary_expression "puVar15 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc));" (assignment_expression "iVar1 = (**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar15 + 0x31da74))(*(undefined4 *)(iVar14 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar15 + 0x31da74))" ( (pointer_expression "**(code **)(puVar15 + 0x31da74)" * (pointer_expression "*(code **)(puVar15 + 0x31da74)" * (cast_expression "(code **)(puVar15 + 0x31da74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31da74)" ( (binary_expression "puVar15 + 0x31da74" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar14 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar14 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x50cc)" ( (binary_expression "iVar14 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4);" (assignment_expression "ppDVar2 = (DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4)" identifier = (cast_expression "(DelegateInfo **)(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4)" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar15 + 0x31db8c))(iVar1 + 1,4)" (parenthesized_expression "(**(code **)(puVar15 + 0x31db8c))" ( (pointer_expression "**(code **)(puVar15 + 0x31db8c)" * (pointer_expression "*(code **)(puVar15 + 0x31db8c)" * (cast_expression "(code **)(puVar15 + 0x31db8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31db8c)" ( (binary_expression "puVar15 + 0x31db8c" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (ppDVar2 != (DelegateInfo **)0x0) {\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }" if (parenthesized_expression "(ppDVar2 != (DelegateInfo **)0x0)" ( (binary_expression "ppDVar2 != (DelegateInfo **)0x0" identifier != (cast_expression "(DelegateInfo **)0x0" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      iVar1 = *(int *)(puVar15 + 0x31cf4c);\n      (**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));\n      iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));\n      if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar12;\n      *ppDVar9 = (DelegateInfo *)0x0;\n      return ppDVar2;\n    }" { (expression_statement "iVar1 = *(int *)(puVar15 + 0x31cf4c);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar15 + 0x31cf4c)" * (cast_expression "(int *)(puVar15 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31cf4c)" ( (binary_expression "puVar15 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar15 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar15 + 0x31dd68))" ( (pointer_expression "**(code **)(puVar15 + 0x31dd68)" * (pointer_expression "*(code **)(puVar15 + 0x31dd68)" * (cast_expression "(code **)(puVar15 + 0x31dd68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dd68)" ( (binary_expression "puVar15 + 0x31dd68" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc));" (call_expression "(**(code **)(puVar15 + 0x31dbb8))(*(undefined4 *)(iVar14 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar15 + 0x31dbb8))" ( (pointer_expression "**(code **)(puVar15 + 0x31dbb8)" * (pointer_expression "*(code **)(puVar15 + 0x31dbb8)" * (cast_expression "(code **)(puVar15 + 0x31dbb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dbb8)" ( (binary_expression "puVar15 + 0x31dbb8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar14 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar14 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x50cc)" ( (binary_expression "iVar14 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc));" (assignment_expression "iVar4 = (**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar15 + 0x31d990))(*(undefined4 *)(iVar14 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar15 + 0x31d990))" ( (pointer_expression "**(code **)(puVar15 + 0x31d990)" * (pointer_expression "*(code **)(puVar15 + 0x31d990)" * (cast_expression "(code **)(puVar15 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d990)" ( (binary_expression "puVar15 + 0x31d990" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar14 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar14 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x50cc)" ( (binary_expression "iVar14 + -0x50cc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }\n      else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = 0;\n        ppDVar9 = ppDVar2;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "ppDVar9 = ppDVar2;" (assignment_expression "ppDVar9 = ppDVar2" identifier = identifier) ;) }) (else_clause "else {\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }" else (compound_statement "{\n        iVar12 = 0;\n        do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        } while (iVar4 != 0);" do (compound_statement "{\n          ppDVar9 = ppDVar2 + iVar12;\n          iVar13 = iVar12;\n          if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));\n        }" { (expression_statement "ppDVar9 = ppDVar2 + iVar12;" (assignment_expression "ppDVar9 = ppDVar2 + iVar12" identifier = (binary_expression "ppDVar2 + iVar12" identifier + identifier)) ;) (expression_statement "iVar13 = iVar12;" (assignment_expression "iVar13 = iVar12" identifier = identifier) ;) (if_statement "if (*(int *)(iVar4 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }\n          else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }" if (parenthesized_expression "(*(int *)(iVar4 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x1c) == 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(iVar4 + 4);\n            iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar13 = iVar12 + 1;\n            pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar4 + 0x1c);\n            *ppDVar9 = pDVar3;\n            ppDVar9 = ppDVar2 + iVar12 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }" { (expression_statement "uVar8 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar8 = *(undefined4 *)(iVar4 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar5 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar15 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar15 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar15 + 0x31dcc8)" * (cast_expression "(code **)(puVar15 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dcc8)" ( (binary_expression "puVar15 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);\n              iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }\n              goto LAB_0008bac8;\n            }" { (labeled_statement "LAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar4 + 8);" statement_identifier : (expression_statement "uVar8 = *(undefined4 *)(iVar4 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar4 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;)) (expression_statement "iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar4 = (**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar15 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar15 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar15 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar15 + 0x31dcc8)" * (cast_expression "(code **)(puVar15 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31dcc8)" ( (binary_expression "puVar15 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar13 = iVar13 + 1;\n                pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);\n                *ppDVar9 = pDVar3;\n                ppDVar9 = ppDVar2 + iVar13;\n              }" { (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);" (assignment_expression "pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8)" identifier = (cast_expression "(DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8)" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar15 + 0x31d734))" ( (pointer_expression "**(code **)(puVar15 + 0x31d734)" * (pointer_expression "*(code **)(puVar15 + 0x31d734)" * (cast_expression "(code **)(puVar15 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d734)" ( (binary_expression "puVar15 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier ))))) ;) (expression_statement "*ppDVar9 = pDVar3;" (assignment_expression "*ppDVar9 = pDVar3" (pointer_expression "*ppDVar9" * identifier) = identifier) ;) (expression_statement "ppDVar9 = ppDVar2 + iVar13;" (assignment_expression "ppDVar9 = ppDVar2 + iVar13" identifier = (binary_expression "ppDVar2 + iVar13" identifier + identifier)) ;) })) (goto_statement "goto LAB_0008bac8;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar12 + 1;" (assignment_expression "iVar13 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8);" (assignment_expression "pDVar3 = (DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8)" identifier = (cast_expression "(DelegateInfo *)(**(code **)(puVar15 + 0x31d734))(uVar8)" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar15 + 0x31d734))" ( (pointer_expression "**(code **)(puVar15 + 0x31d734)" * (pointer_expression "*(code **)(puVar15 + 0x31d734)" * (cast_expression "(code **)(puVar15 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d734)" ( (binary_expression "puVar15 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x1c);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*ppDVar9 = pDVar3;" (assignment_expression "*ppDVar9 = pDVar3" (pointer_expression "*ppDVar9" * identifier) = identifier) ;) (expression_statement "ppDVar9 = ppDVar2 + iVar12 + 1;" (assignment_expression "ppDVar9 = ppDVar2 + iVar12 + 1" identifier = (binary_expression "ppDVar2 + iVar12 + 1" (binary_expression "ppDVar2 + iVar12" identifier + identifier) + number_literal)) ;) (if_statement "if (iVar5 == 0) goto LAB_0008baa8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008baa8;" goto statement_identifier ;)) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x31d990);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar15 + 0x31d990)" * (cast_expression "(code **)(puVar15 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d990)" ( (binary_expression "puVar15 + 0x31d990" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar13;" (assignment_expression "iVar12 = iVar13" identifier = identifier) ;) }) (else_clause "else {\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }" else (compound_statement "{\nLAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);\n            iVar12 = iVar13;\n          }" { (labeled_statement "LAB_0008bac8:\n            pcVar16 = *(code **)(puVar15 + 0x31d990);" statement_identifier : (expression_statement "pcVar16 = *(code **)(puVar15 + 0x31d990);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar15 + 0x31d990)" * (cast_expression "(code **)(puVar15 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31d990)" ( (binary_expression "puVar15 + 0x31d990" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = iVar13;" (assignment_expression "iVar12 = iVar13" identifier = identifier) ;) }))) (expression_statement "iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc));" (assignment_expression "iVar4 = (*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc))" identifier = (call_expression "(*pcVar16)(*(undefined4 *)(iVar14 + -0x50cc))" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(*(undefined4 *)(iVar14 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar14 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar14 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x50cc)" ( (binary_expression "iVar14 + -0x50cc" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) }))) (expression_statement "(**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar15 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar15 + 0x31da00))" ( (pointer_expression "**(code **)(puVar15 + 0x31da00)" * (pointer_expression "*(code **)(puVar15 + 0x31da00)" * (cast_expression "(code **)(puVar15 + 0x31da00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31da00)" ( (binary_expression "puVar15 + 0x31da00" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0);" (call_expression "(**(code **)(puVar15 + 0x31df54))(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0)" (parenthesized_expression "(**(code **)(puVar15 + 0x31df54))" ( (pointer_expression "**(code **)(puVar15 + 0x31df54)" * (pointer_expression "*(code **)(puVar15 + 0x31df54)" * (cast_expression "(code **)(puVar15 + 0x31df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x31df54)" ( (binary_expression "puVar15 + 0x31df54" identifier + number_literal) ))))) )) (argument_list "(ppDVar2,iVar12,4,*(int *)(puVar15 + 0x31d0c8) + -0x61b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(puVar15 + 0x31d0c8) + -0x61b0" (pointer_expression "*(int *)(puVar15 + 0x31d0c8)" * (cast_expression "(int *)(puVar15 + 0x31d0c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x31d0c8)" ( (binary_expression "puVar15 + 0x31d0c8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*piVar7 = iVar12;" (assignment_expression "*piVar7 = iVar12" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "*ppDVar9 = (DelegateInfo *)0x0;" (assignment_expression "*ppDVar9 = (DelegateInfo *)0x0" (pointer_expression "*ppDVar9" * identifier) = (cast_expression "(DelegateInfo *)0x0" ( (type_descriptor "DelegateInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return ppDVar2;" return identifier ;) })) })) (return_statement "return (DelegateInfo **)0x0;" return (cast_expression "(DelegateInfo **)0x0" ( (type_descriptor "DelegateInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ;) })))
(translation_unit "undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}\n\n" (function_definition "undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" type_identifier (pointer_declarator "* GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" * (function_declarator "GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (if_statement "if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) }) (else_clause "else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" else (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);" (assignment_expression "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" identifier = (call_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" (parenthesized_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)" ( (pointer_expression "*(code *)PTR_GetDelegateInfo_003a92ac" * (cast_expression "(code *)PTR_GetDelegateInfo_003a92ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar12 = PTR_DAT_003a88cc;" (assignment_expression "puVar12 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" { (expression_statement "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));" (assignment_expression "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)" ( (pointer_expression "*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" * (cast_expression "(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (expression_statement "puVar6 = PTR_DAT_003a88cc;" (assignment_expression "puVar6 = PTR_DAT_003a88cc" identifier = identifier) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));" (call_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" (parenthesized_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)" ( (pointer_expression "*(code *)PTR_LockSemaphoreInfo_003a96e8" * (cast_expression "(code *)PTR_LockSemaphoreInfo_003a96e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" ( (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" * (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x50d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));" (call_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)" ( (pointer_expression "*(code *)PTR_ResetLinkedListIterator_003a9538" * (cast_expression "(code *)PTR_ResetLinkedListIterator_003a9538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" identifier = identifier) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" { (do_statement "do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);" do (compound_statement "{\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          }" { (expression_statement "iVar1 = iVar11;" (assignment_expression "iVar1 = iVar11" identifier = identifier) ;) (if_statement "if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" if (parenthesized_expression "((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))))" ( (binary_expression "(*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" ( (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))" ( (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar3 + 4),param_1,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) , identifier , number_literal )))) , (binary_expression "iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (binary_expression "iVar4 != 0" identifier != number_literal) || (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" identifier = (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" ( (pointer_expression "*(code *)PTR_GlobExpression_003a9648" * (cast_expression "(code *)PTR_GlobExpression_003a9648" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar3 + 8),param_1,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , identifier , number_literal )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" { (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar2[iVar11] = iVar3;" (assignment_expression "puVar2[iVar11] = iVar3" (subscript_expression "puVar2[iVar11]" identifier [ identifier ]) = identifier) ;) })) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" identifier = (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" ( (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" * (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" * (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x50cc)" ( (binary_expression "puVar12 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "puVar9 = puVar2 + iVar1;" (assignment_expression "puVar9 = puVar2 + iVar1" identifier = (binary_expression "puVar2 + iVar1" identifier + identifier)) ;) })) (expression_statement "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));" (call_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0))" (parenthesized_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)" ( (pointer_expression "*(code *)PTR_UnlockSemaphoreInfo_003a9380" * (cast_expression "(code *)PTR_UnlockSemaphoreInfo_003a9380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar6 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x50d0)" * (cast_expression "(undefined4 *)(puVar6 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x50d0)" ( (binary_expression "puVar6 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);" (call_expression "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" (parenthesized_expression "(*(code *)PTR_qsort_003a98d4)" ( (pointer_expression "*(code *)PTR_qsort_003a98d4" * (cast_expression "(code *)PTR_qsort_003a98d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" ( identifier , identifier , number_literal , (binary_expression "PTR_LAB_003a8a48 + -0x6194" identifier + number_literal) ))) ;) (expression_statement "*param_2 = iVar1;" (assignment_expression "*param_2 = iVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))) (expression_statement "uVar8 = 0x540;" (assignment_expression "uVar8 = 0x540" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);" (assignment_expression "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" identifier = (cast_expression "(int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" identifier + number_literal) )))) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x45e0;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x45e0" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x45e0" identifier + number_literal)) ;) (expression_statement "puVar12 = PTR___assert_fail_003a9608;" (assignment_expression "puVar12 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" ( identifier , identifier , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" identifier + number_literal) ))) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar12 + 0x31dc88)" * (pointer_expression "*(code **)(puVar12 + 0x31dc88)" * (cast_expression "(code **)(puVar12 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dc88)" ( (binary_expression "puVar12 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar12 + 0x31cf60) + 0x45e0" (pointer_expression "*(int *)(puVar12 + 0x31cf60)" * (cast_expression "(int *)(puVar12 + 0x31cf60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf60)" ( (binary_expression "puVar12 + 0x31cf60" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar12 + 0x31cf68) + -0x14f8" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);" (call_expression "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d860))" ( (pointer_expression "**(code **)(puVar12 + 0x31d860)" * (pointer_expression "*(code **)(puVar12 + 0x31d860)" * (cast_expression "(code **)(puVar12 + 0x31d860)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d860)" ( (binary_expression "puVar12 + 0x31d860" identifier + number_literal) ))))) )) (argument_list "(0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" ( number_literal , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1ce0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf64) + -0x62ac" (pointer_expression "*(int *)(puVar12 + 0x31cf64)" * (cast_expression "(int *)(puVar12 + 0x31cf64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf64)" ( (binary_expression "puVar12 + 0x31cf64" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" identifier = (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" ( (pointer_expression "**(code **)(puVar12 + 0x31dc88)" * (pointer_expression "*(code **)(puVar12 + 0x31dc88)" * (cast_expression "(code **)(puVar12 + 0x31dc88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dc88)" ( (binary_expression "puVar12 + 0x31dc88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" ( (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1810" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar1 + -0x14f8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf68)" * (cast_expression "(int *)(puVar12 + 0x31cf68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf68)" ( (binary_expression "puVar12 + 0x31cf68" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d92c);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d92c)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d92c)" * (cast_expression "(code **)(puVar12 + 0x31d92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d92c)" ( (binary_expression "puVar12 + 0x31d92c" identifier + number_literal) ))))) ;) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);" (assignment_expression "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" identifier = (call_expression "(*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" ( (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , (binary_expression "iVar1 + 0x6c9c" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" { (expression_statement "iVar11 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" * (cast_expression "(int *)(puVar12 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf4c)" ( (binary_expression "puVar12 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da74))" ( (pointer_expression "**(code **)(puVar12 + 0x31da74)" * (pointer_expression "*(code **)(puVar12 + 0x31da74)" * (cast_expression "(code **)(puVar12 + 0x31da74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31da74)" ( (binary_expression "puVar12 + 0x31da74" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" (parenthesized_expression "(**(code **)(puVar12 + 0x31db8c))" ( (pointer_expression "**(code **)(puVar12 + 0x31db8c)" * (pointer_expression "*(code **)(puVar12 + 0x31db8c)" * (cast_expression "(code **)(puVar12 + 0x31db8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31db8c)" ( (binary_expression "puVar12 + 0x31db8c" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 1,4)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" { (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf4c)" identifier = (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" * (cast_expression "(int *)(puVar12 + 0x31cf4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31cf4c)" ( (binary_expression "puVar12 + 0x31cf4c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dd68))" ( (pointer_expression "**(code **)(puVar12 + 0x31dd68)" * (pointer_expression "*(code **)(puVar12 + 0x31dd68)" * (cast_expression "(code **)(puVar12 + 0x31dd68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dd68)" ( (binary_expression "puVar12 + 0x31dd68" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));" (call_expression "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dbb8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dbb8)" * (pointer_expression "*(code **)(puVar12 + 0x31dbb8)" * (cast_expression "(code **)(puVar12 + 0x31dbb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dbb8)" ( (binary_expression "puVar12 + 0x31dbb8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31d990))" ( (pointer_expression "**(code **)(puVar12 + 0x31d990)" * (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" identifier = identifier) ;) }) (else_clause "else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" else (compound_statement "{\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);" do (compound_statement "{\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        }" { (expression_statement "puVar9 = puVar2 + iVar4;" (assignment_expression "puVar9 = puVar2 + iVar4" identifier = (binary_expression "puVar2 + iVar4" identifier + identifier)) ;) (expression_statement "iVar10 = iVar4;" (assignment_expression "iVar10 = iVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" { (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" * (cast_expression "(code **)(puVar12 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dcc8)" ( (binary_expression "puVar12 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" { (labeled_statement "LAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);" statement_identifier : (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" identifier = (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" ( (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" * (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" * (cast_expression "(code **)(puVar12 + 0x31dcc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31dcc8)" ( (binary_expression "puVar12 + 0x31dcc8" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar6,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" identifier = (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" ( (pointer_expression "**(code **)(puVar12 + 0x31d734)" * (pointer_expression "*(code **)(puVar12 + 0x31d734)" * (cast_expression "(code **)(puVar12 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d734)" ( (binary_expression "puVar12 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar2 + iVar10;" (assignment_expression "puVar9 = puVar2 + iVar10" identifier = (binary_expression "puVar2 + iVar10" identifier + identifier)) ;) })) (goto_statement "goto LAB_0008bac8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar4 + 1;" (assignment_expression "iVar10 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" identifier = (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" ( (pointer_expression "**(code **)(puVar12 + 0x31d734)" * (pointer_expression "*(code **)(puVar12 + 0x31d734)" * (cast_expression "(code **)(puVar12 + 0x31d734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d734)" ( (binary_expression "puVar12 + 0x31d734" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "iVar5 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar2 + iVar4 + 1;" (assignment_expression "puVar9 = puVar2 + iVar4 + 1" identifier = (binary_expression "puVar2 + iVar4 + 1" (binary_expression "puVar2 + iVar4" identifier + identifier) + number_literal)) ;) (if_statement "if (iVar5 == 0) goto LAB_0008baa8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008baa8;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" identifier = identifier) ;) }) (else_clause "else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" else (compound_statement "{\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" { (labeled_statement "LAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);" statement_identifier : (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" identifier = (pointer_expression "*(code **)(puVar12 + 0x31d990)" * (cast_expression "(code **)(puVar12 + 0x31d990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31d990)" ( (binary_expression "puVar12 + 0x31d990" identifier + number_literal) ))))) ;)) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" identifier = identifier) ;) }))) (expression_statement "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" identifier = (call_expression "(*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" ( (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" * (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x50cc)" ( (binary_expression "iVar11 + -0x50cc" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) }))) (expression_statement "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da00))" ( (pointer_expression "**(code **)(puVar12 + 0x31da00)" * (pointer_expression "*(code **)(puVar12 + 0x31da00)" * (cast_expression "(code **)(puVar12 + 0x31da00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31da00)" ( (binary_expression "puVar12 + 0x31da00" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" ( (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" * (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0x50d0)" ( (binary_expression "iVar1 + -0x50d0" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);" (call_expression "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31df54))" ( (pointer_expression "**(code **)(puVar12 + 0x31df54)" * (pointer_expression "*(code **)(puVar12 + 0x31df54)" * (cast_expression "(code **)(puVar12 + 0x31df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x31df54)" ( (binary_expression "puVar12 + 0x31df54" identifier + number_literal) ))))) )) (argument_list "(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(puVar12 + 0x31d0c8) + -0x61b0" (pointer_expression "*(int *)(puVar12 + 0x31d0c8)" * (cast_expression "(int *)(puVar12 + 0x31d0c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x31d0c8)" ( (binary_expression "puVar12 + 0x31d0c8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return IDENT ;) })) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return IDENT ;) })) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "undefined4 * GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" (type_identifier "undefined4") (pointer_declarator "* GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" (* "*") (function_declarator "GetDelegateInfoList(int param_1,int *param_2,undefined4 param_3)" (identifier "GetDelegateInfoList") (parameter_list "(int param_1,int *param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")")))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined *puVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  \n  if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }\n  uVar8 = 0x540;\n  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);\n  puVar6 = PTR_LAB_003a88e0 + 0x45e0;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  (**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);\n  if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }\n  iVar1 = *(int *)(puVar12 + 0x31cf68);\n  pcVar13 = *(code **)(puVar12 + 0x31d92c);\n  *piVar7 = 0;\n  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);\n  if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }\n  return (undefined4 *)0x0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (if_statement "if (param_2 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }\n  else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x1810")) (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x14f8")) (, ",") (number_literal "0x53f") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x1d14")) () ")"))) (; ";")) (} "}")) (else_clause "else if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" (else "else") (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);\n    *param_2 = 0;\n    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);\n    puVar12 = PTR_DAT_003a88cc;\n    if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }\n    return (undefined4 *)0x0;\n  }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003a91e0"))) () ")")) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x14f8")) (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x1d00")) (, ",") (number_literal "0x541") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x62ac")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);" (assignment_expression "iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" (parenthesized_expression "(*(code *)PTR_GetDelegateInfo_003a92ac)" (( "(") (pointer_expression "*(code *)PTR_GetDelegateInfo_003a92ac" (* "*") (cast_expression "(code *)PTR_GetDelegateInfo_003a92ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetDelegateInfo_003a92ac"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,\n                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x6c9c")) (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x6c9c")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar12 = PTR_DAT_003a88cc;" (assignment_expression "puVar12 = PTR_DAT_003a88cc" (identifier "puVar12") (= "=") (identifier "PTR_DAT_003a88cc")) (; ";")) (if_statement "if (iVar1 != 0) {\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));\n      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);\n      puVar6 = PTR_DAT_003a88cc;\n      if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }\n    }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));" (assignment_expression "iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)\n                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)" (( "(") (pointer_expression "*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" (* "*") (cast_expression "(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetNumberOfElementsInLinkedList_003a93f4"))) () ")")) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003a88cc + -0x50cc)" (( "(") (binary_expression "PTR_DAT_003a88cc + -0x50cc" (identifier "PTR_DAT_003a88cc") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(iVar1 + 1,4)" (( "(") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1")) (, ",") (number_literal "4") () ")"))))) (; ";")) (expression_statement "puVar6 = PTR_DAT_003a88cc;" (assignment_expression "puVar6 = PTR_DAT_003a88cc" (identifier "puVar6") (= "=") (identifier "PTR_DAT_003a88cc")) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar1 = 0;\n        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));\n        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));\n        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;\n        puVar9 = puVar2;\n        iVar11 = iVar1;\n        if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }\n        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));\n        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);\n        *param_2 = iVar1;\n        *puVar9 = 0;\n        return puVar2;\n      }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));" (call_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" (parenthesized_expression "(*(code *)PTR_LockSemaphoreInfo_003a96e8)" (( "(") (pointer_expression "*(code *)PTR_LockSemaphoreInfo_003a96e8" (* "*") (cast_expression "(code *)PTR_LockSemaphoreInfo_003a96e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LockSemaphoreInfo_003a96e8"))) () ")")) (argument_list "(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0))" (( "(") (pointer_expression "*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_003a88cc + -0x50d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003a88cc + -0x50d0)" (( "(") (binary_expression "PTR_DAT_003a88cc + -0x50d0" (identifier "PTR_DAT_003a88cc") (+ "+") (number_literal "-0x50d0")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));" (call_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_ResetLinkedListIterator_003a9538)" (( "(") (pointer_expression "*(code *)PTR_ResetLinkedListIterator_003a9538" (* "*") (cast_expression "(code *)PTR_ResetLinkedListIterator_003a9538" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ResetLinkedListIterator_003a9538"))) () ")")) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x50cc)" (( "(") (binary_expression "puVar12 + -0x50cc" (identifier "puVar12") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))\n        ;" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" (( "(") (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" (* "*") (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetNextValueInLinkedList_003a9310"))) () ")")) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x50cc)" (( "(") (binary_expression "puVar12 + -0x50cc" (identifier "puVar12") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" (identifier "puVar9") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" (identifier "iVar11") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (iVar3 != 0) {\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);\n          puVar9 = puVar2 + iVar1;\n        }" ({ "{") (do_statement "do {\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          } while (iVar3 != 0);" (do "do") (compound_statement "{\n            iVar1 = iVar11;\n            if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }\n            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));\n            iVar11 = iVar1;\n          }" ({ "{") (expression_statement "iVar1 = iVar11;" (assignment_expression "iVar1 = iVar11" (identifier "iVar1") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if ((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))))" (( "(") (binary_expression "(*(int *)(iVar3 + 0x1c) == 0) &&\n               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))" (( "(") (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0))" (( "(") (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 4),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" (( "(") (pointer_expression "*(code *)PTR_GlobExpression_003a9648" (* "*") (cast_expression "(code *)PTR_GlobExpression_003a9648" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GlobExpression_003a9648"))) () ")")) (argument_list "(*(undefined4 *)(iVar3 + 4),param_1,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar4 != 0 ||\n                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)" (( "(") (comma_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_GlobExpression_003a9648)\n                                   (*(undefined4 *)(iVar3 + 8),param_1,0)" (parenthesized_expression "(*(code *)PTR_GlobExpression_003a9648)" (( "(") (pointer_expression "*(code *)PTR_GlobExpression_003a9648" (* "*") (cast_expression "(code *)PTR_GlobExpression_003a9648" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GlobExpression_003a9648"))) () ")")) (argument_list "(*(undefined4 *)(iVar3 + 8),param_1,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n              iVar1 = iVar11 + 1;\n              puVar2[iVar11] = iVar3;\n            }" ({ "{") (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar2[iVar11] = iVar3;" (assignment_expression "puVar2[iVar11] = iVar3" (subscript_expression "puVar2[iVar11]" (identifier "puVar2") ([ "[") (identifier "iVar11") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc));" (assignment_expression "iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)\n                              (*(undefined4 *)(puVar12 + -0x50cc))" (parenthesized_expression "(*(code *)PTR_GetNextValueInLinkedList_003a9310)" (( "(") (pointer_expression "*(code *)PTR_GetNextValueInLinkedList_003a9310" (* "*") (cast_expression "(code *)PTR_GetNextValueInLinkedList_003a9310" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetNextValueInLinkedList_003a9310"))) () ")")) (argument_list "(*(undefined4 *)(puVar12 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(puVar12 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x50cc)" (( "(") (binary_expression "puVar12 + -0x50cc" (identifier "puVar12") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" (identifier "iVar11") (= "=") (identifier "iVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar9 = puVar2 + iVar1;" (assignment_expression "puVar9 = puVar2 + iVar1" (identifier "puVar9") (= "=") (binary_expression "puVar2 + iVar1" (identifier "puVar2") (+ "+") (identifier "iVar1"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));" (call_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0))" (parenthesized_expression "(*(code *)PTR_UnlockSemaphoreInfo_003a9380)" (( "(") (pointer_expression "*(code *)PTR_UnlockSemaphoreInfo_003a9380" (* "*") (cast_expression "(code *)PTR_UnlockSemaphoreInfo_003a9380" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_UnlockSemaphoreInfo_003a9380"))) () ")")) (argument_list "(*(undefined4 *)(puVar6 + -0x50d0))" (( "(") (pointer_expression "*(undefined4 *)(puVar6 + -0x50d0)" (* "*") (cast_expression "(undefined4 *)(puVar6 + -0x50d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x50d0)" (( "(") (binary_expression "puVar6 + -0x50d0" (identifier "puVar6") (+ "+") (number_literal "-0x50d0")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);" (call_expression "(*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" (parenthesized_expression "(*(code *)PTR_qsort_003a98d4)" (( "(") (pointer_expression "*(code *)PTR_qsort_003a98d4" (* "*") (cast_expression "(code *)PTR_qsort_003a98d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_qsort_003a98d4"))) () ")")) (argument_list "(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194)" (( "(") (identifier "puVar2") (, ",") (identifier "iVar1") (, ",") (number_literal "4") (, ",") (binary_expression "PTR_LAB_003a8a48 + -0x6194" (identifier "PTR_LAB_003a8a48") (+ "+") (number_literal "-0x6194")) () ")"))) (; ";")) (expression_statement "*param_2 = iVar1;" (assignment_expression "*param_2 = iVar1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (} "}"))) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))))) (expression_statement "uVar8 = 0x540;" (assignment_expression "uVar8 = 0x540" (identifier "uVar8") (= "=") (number_literal "0x540")) (; ";")) (expression_statement "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);" (assignment_expression "piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" (identifier "piVar7") (= "=") (cast_expression "(int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x14f8")) () ")")))) (; ";")) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x45e0;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x45e0" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x45e0" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x45e0"))) (; ";")) (expression_statement "puVar12 = PTR___assert_fail_003a9608;" (assignment_expression "puVar12 = PTR___assert_fail_003a9608" (identifier "puVar12") (= "=") (identifier "PTR___assert_fail_003a9608")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14)" (( "(") (identifier "puVar6") (, ",") (identifier "piVar7") (, ",") (number_literal "0x540") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x1d14")) () ")"))) (; ";")) (if_statement "if (puVar6 == (undefined *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(puVar6 == (undefined *)0x0)" (( "(") (binary_expression "puVar6 == (undefined *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dc88)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dc88)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dc88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dc88)" (( "(") (binary_expression "puVar12 + 0x31dc88" (identifier "puVar12") (+ "+") (number_literal "0x31dc88")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8\n                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (( "(") (binary_expression "*(int *)(puVar12 + 0x31cf60) + 0x45e0" (pointer_expression "*(int *)(puVar12 + 0x31cf60)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf60)" (( "(") (binary_expression "puVar12 + 0x31cf60" (identifier "puVar12") (+ "+") (number_literal "0x31cf60")) () ")")))) (+ "+") (number_literal "0x45e0")) (, ",") (binary_expression "*(int *)(puVar12 + 0x31cf68) + -0x14f8" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")")))) (+ "+") (number_literal "-0x14f8")) (, ",") (number_literal "0x5a0") (, ",") (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")")))) (+ "+") (number_literal "0x1cf0")) () ")"))))) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);" (call_expression "(**(code **)(puVar12 + 0x31d860))\n            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d860))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31d860)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31d860)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d860)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d860)" (( "(") (binary_expression "puVar12 + 0x31d860" (identifier "puVar12") (+ "+") (number_literal "0x31d860")) () ")"))))) () ")")) (argument_list "(0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,\n             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "iVar1 + -0x14f8" (identifier "iVar1") (+ "+") (number_literal "-0x14f8")) (, ",") (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1ce0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")")))) (+ "+") (number_literal "0x1ce0")) (, ",") (number_literal "0x5a1") (, ",") (binary_expression "*(int *)(puVar12 + 0x31cf64) + -0x62ac" (pointer_expression "*(int *)(puVar12 + 0x31cf64)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf64)" (( "(") (binary_expression "puVar12 + 0x31cf64" (identifier "puVar12") (+ "+") (number_literal "0x31cf64")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (identifier "puVar6") () ")"))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);\n    return puVar2;\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);" (assignment_expression "puVar2 = (undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)\n             (**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar12 + 0x31dc88))\n                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dc88))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dc88)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dc88)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dc88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dc88)" (( "(") (binary_expression "puVar12 + 0x31dc88" (identifier "puVar12") (+ "+") (number_literal "0x31dc88")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,\n                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0)" (( "(") (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1810" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")")))) (+ "+") (number_literal "0x1810")) (, ",") (binary_expression "iVar1 + -0x14f8" (identifier "iVar1") (+ "+") (number_literal "-0x14f8")) (, ",") (number_literal "0x5a3") (, ",") (binary_expression "*(int *)(puVar12 + 0x31cf68) + 0x1cf0" (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")")))) (+ "+") (number_literal "0x1cf0")) () ")"))))) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf68);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf68)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar12 + 0x31cf68)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf68)" (( "(") (binary_expression "puVar12 + 0x31cf68" (identifier "puVar12") (+ "+") (number_literal "0x31cf68")) () ")"))))) (; ";")) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d92c);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d92c)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x31d92c)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d92c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d92c)" (( "(") (binary_expression "puVar12 + 0x31d92c" (identifier "puVar12") (+ "+") (number_literal "0x31d92c")) () ")"))))) (; ";")) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);" (assignment_expression "iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (identifier "iVar1") (= "=") (call_expression "(*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8)" (( "(") (binary_expression "iVar1 + 0x6c9c" (identifier "iVar1") (+ "+") (number_literal "0x6c9c")) (, ",") (binary_expression "iVar1 + 0x6c9c" (identifier "iVar1") (+ "+") (number_literal "0x6c9c")) (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar11 = *(int *)(puVar12 + 0x31cf4c);\n    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));\n    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);\n    if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }\n  }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x31cf4c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf4c)" (( "(") (binary_expression "puVar12 + 0x31cf4c" (identifier "puVar12") (+ "+") (number_literal "0x31cf4c")) () ")"))))) (; ";")) (expression_statement "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da74))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31da74)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31da74)" (* "*") (cast_expression "(code **)(puVar12 + 0x31da74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31da74)" (( "(") (binary_expression "puVar12 + 0x31da74" (identifier "puVar12") (+ "+") (number_literal "0x31da74")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x50cc)" (( "(") (binary_expression "iVar11 + -0x50cc" (identifier "iVar11") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);" (assignment_expression "puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4)" (parenthesized_expression "(**(code **)(puVar12 + 0x31db8c))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31db8c)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31db8c)" (* "*") (cast_expression "(code **)(puVar12 + 0x31db8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31db8c)" (( "(") (binary_expression "puVar12 + 0x31db8c" (identifier "puVar12") (+ "+") (number_literal "0x31db8c")) () ")"))))) () ")")) (argument_list "(iVar1 + 1,4)" (( "(") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1")) (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar1 = *(int *)(puVar12 + 0x31cf4c);\n      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));\n      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));\n      if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }\n      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));\n      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);\n      *piVar7 = iVar4;\n      *puVar9 = 0;\n      return puVar2;\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(puVar12 + 0x31cf4c);" (assignment_expression "iVar1 = *(int *)(puVar12 + 0x31cf4c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar12 + 0x31cf4c)" (* "*") (cast_expression "(int *)(puVar12 + 0x31cf4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31cf4c)" (( "(") (binary_expression "puVar12 + 0x31cf4c" (identifier "puVar12") (+ "+") (number_literal "0x31cf4c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dd68))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dd68)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dd68)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dd68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dd68)" (( "(") (binary_expression "puVar12 + 0x31dd68" (identifier "puVar12") (+ "+") (number_literal "0x31dd68")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" (( "(") (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" (* "*") (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + -0x50d0)" (( "(") (binary_expression "iVar1 + -0x50d0" (identifier "iVar1") (+ "+") (number_literal "-0x50d0")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));" (call_expression "(**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31dbb8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dbb8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dbb8)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dbb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dbb8)" (( "(") (binary_expression "puVar12 + 0x31dbb8" (identifier "puVar12") (+ "+") (number_literal "0x31dbb8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x50cc)" (( "(") (binary_expression "iVar11 + -0x50cc" (identifier "iVar11") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(**(code **)(puVar12 + 0x31d990))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31d990)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31d990)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d990)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d990)" (( "(") (binary_expression "puVar12 + 0x31d990" (identifier "puVar12") (+ "+") (number_literal "0x31d990")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x50cc)" (( "(") (binary_expression "iVar11 + -0x50cc" (identifier "iVar11") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }\n      else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = 0;\n        puVar9 = puVar2;\n      }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = puVar2;" (assignment_expression "puVar9 = puVar2" (identifier "puVar9") (= "=") (identifier "puVar2")) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" (else "else") (compound_statement "{\n        iVar4 = 0;\n        do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);\n      }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        } while (iVar3 != 0);" (do "do") (compound_statement "{\n          puVar9 = puVar2 + iVar4;\n          iVar10 = iVar4;\n          if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));\n        }" ({ "{") (expression_statement "puVar9 = puVar2 + iVar4;" (assignment_expression "puVar9 = puVar2 + iVar4" (identifier "puVar9") (= "=") (binary_expression "puVar2 + iVar4" (identifier "puVar2") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "iVar10 = iVar4;" (assignment_expression "iVar10 = iVar4" (identifier "iVar10") (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x1c) == 0) {\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }\n          else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x1c) == 0" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar8 = *(undefined4 *)(iVar3 + 4);\n            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n            if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }\n            iVar10 = iVar4 + 1;\n            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n            iVar5 = *(int *)(iVar3 + 0x1c);\n            *puVar9 = uVar8;\n            puVar9 = puVar2 + iVar4 + 1;\n            if (iVar5 == 0) goto LAB_0008baa8;\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" ({ "{") (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dcc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dcc8)" (( "(") (binary_expression "puVar12 + 0x31dcc8" (identifier "puVar12") (+ "+") (number_literal "0x31dcc8")) () ")"))))) () ")")) (argument_list "(uVar8,puVar6,0)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);\n              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);\n              if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }\n              goto LAB_0008bac8;\n            }" ({ "{") (labeled_statement "LAB_0008baa8:\n              uVar8 = *(undefined4 *)(iVar3 + 8);" (statement_identifier "LAB_0008baa8") (: ":") (expression_statement "uVar8 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar3 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31dcc8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31dcc8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31dcc8)" (* "*") (cast_expression "(code **)(puVar12 + 0x31dcc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31dcc8)" (( "(") (binary_expression "puVar12 + 0x31dcc8" (identifier "puVar12") (+ "+") (number_literal "0x31dcc8")) () ")"))))) () ")")) (argument_list "(uVar8,puVar6,0)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar10 = iVar10 + 1;\n                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);\n                *puVar9 = uVar8;\n                puVar9 = puVar2 + iVar10;\n              }" ({ "{") (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31d734)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31d734)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d734)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d734)" (( "(") (binary_expression "puVar12 + 0x31d734" (identifier "puVar12") (+ "+") (number_literal "0x31d734")) () ")"))))) () ")")) (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar2 + iVar10;" (assignment_expression "puVar9 = puVar2 + iVar10" (identifier "puVar9") (= "=") (binary_expression "puVar2 + iVar10" (identifier "puVar2") (+ "+") (identifier "iVar10"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008bac8;" (goto "goto") (statement_identifier "LAB_0008bac8") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar4 + 1;" (assignment_expression "iVar10 = iVar4 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);" (assignment_expression "uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar12 + 0x31d734))(uVar8)" (parenthesized_expression "(**(code **)(puVar12 + 0x31d734))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31d734)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31d734)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d734)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d734)" (( "(") (binary_expression "puVar12 + 0x31d734" (identifier "puVar12") (+ "+") (number_literal "0x31d734")) () ")"))))) () ")")) (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar3 + 0x1c);" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*puVar9 = uVar8;" (assignment_expression "*puVar9 = uVar8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar2 + iVar4 + 1;" (assignment_expression "puVar9 = puVar2 + iVar4 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar2 + iVar4 + 1" (binary_expression "puVar2 + iVar4" (identifier "puVar2") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0008baa8;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008baa8;" (goto "goto") (statement_identifier "LAB_0008baa8") (; ";"))) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x31d990)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d990)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d990)" (( "(") (binary_expression "puVar12 + 0x31d990" (identifier "puVar12") (+ "+") (number_literal "0x31d990")) () ")"))))) (; ";")) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" (identifier "iVar4") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" (else "else") (compound_statement "{\nLAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);\n            iVar4 = iVar10;\n          }" ({ "{") (labeled_statement "LAB_0008bac8:\n            pcVar13 = *(code **)(puVar12 + 0x31d990);" (statement_identifier "LAB_0008bac8") (: ":") (expression_statement "pcVar13 = *(code **)(puVar12 + 0x31d990);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x31d990)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x31d990)" (* "*") (cast_expression "(code **)(puVar12 + 0x31d990)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31d990)" (( "(") (binary_expression "puVar12 + 0x31d990" (identifier "puVar12") (+ "+") (number_literal "0x31d990")) () ")"))))) (; ";"))) (expression_statement "iVar4 = iVar10;" (assignment_expression "iVar4 = iVar10" (identifier "iVar4") (= "=") (identifier "iVar10")) (; ";")) (} "}")))) (expression_statement "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));" (assignment_expression "iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" (identifier "iVar3") (= "=") (call_expression "(*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc))" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(*(undefined4 *)(iVar11 + -0x50cc))" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + -0x50cc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -0x50cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x50cc)" (( "(") (binary_expression "iVar11 + -0x50cc" (identifier "iVar11") (+ "+") (number_literal "-0x50cc")) () ")")))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));" (call_expression "(**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0))" (parenthesized_expression "(**(code **)(puVar12 + 0x31da00))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31da00)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31da00)" (* "*") (cast_expression "(code **)(puVar12 + 0x31da00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31da00)" (( "(") (binary_expression "puVar12 + 0x31da00" (identifier "puVar12") (+ "+") (number_literal "0x31da00")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar1 + -0x50d0))" (( "(") (pointer_expression "*(undefined4 *)(iVar1 + -0x50d0)" (* "*") (cast_expression "(undefined4 *)(iVar1 + -0x50d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + -0x50d0)" (( "(") (binary_expression "iVar1 + -0x50d0" (identifier "iVar1") (+ "+") (number_literal "-0x50d0")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);" (call_expression "(**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" (parenthesized_expression "(**(code **)(puVar12 + 0x31df54))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x31df54)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x31df54)" (* "*") (cast_expression "(code **)(puVar12 + 0x31df54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x31df54)" (( "(") (binary_expression "puVar12 + 0x31df54" (identifier "puVar12") (+ "+") (number_literal "0x31df54")) () ")"))))) () ")")) (argument_list "(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0)" (( "(") (identifier "puVar2") (, ",") (identifier "iVar4") (, ",") (number_literal "4") (, ",") (binary_expression "*(int *)(puVar12 + 0x31d0c8) + -0x61b0" (pointer_expression "*(int *)(puVar12 + 0x31d0c8)" (* "*") (cast_expression "(int *)(puVar12 + 0x31d0c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x31d0c8)" (( "(") (binary_expression "puVar12 + 0x31d0c8" (identifier "puVar12") (+ "+") (number_literal "0x31d0c8")) () ")")))) (+ "+") (number_literal "-0x61b0")) () ")"))) (; ";")) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (} "}"))) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (identifier)))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (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)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (return_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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (return_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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (identifier)))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))

undefined4 * MASKED(int param_1,int *param_2,undefined4 param_3)

{
  int iVar1;
  undefined4 *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined *puVar6;
  int *piVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  int iVar10;
  int iVar11;
  undefined *puVar12;
  code *pcVar13;
  
  if (param_2 == (int *)0x0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1810,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,0x53f,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  }
  else if (param_1 != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d00,0x541,
               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1);
    *param_2 = 0;
    iVar1 = (*(code *)PTR_GetDelegateInfo_003a92ac)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,
                       PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x6c9c,param_3);
    puVar12 = PTR_DAT_003a88cc;
    if (iVar1 != 0) {
      iVar1 = (*(code *)PTR_GetNumberOfElementsInLinkedList_003a93f4)
                        (*(undefined4 *)(PTR_DAT_003a88cc + -0x50cc));
      puVar2 = (undefined4 *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(iVar1 + 1,4);
      puVar6 = PTR_DAT_003a88cc;
      if (puVar2 != (undefined4 *)0x0) {
        iVar1 = 0;
        (*(code *)PTR_LockSemaphoreInfo_003a96e8)(*(undefined4 *)(PTR_DAT_003a88cc + -0x50d0));
        (*(code *)PTR_ResetLinkedListIterator_003a9538)(*(undefined4 *)(puVar12 + -0x50cc));
        iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)(*(undefined4 *)(puVar12 + -0x50cc))
        ;
        puVar9 = puVar2;
        iVar11 = iVar1;
        if (iVar3 != 0) {
          do {
            iVar1 = iVar11;
            if ((*(int *)(iVar3 + 0x1c) == 0) &&
               ((iVar4 = (*(code *)PTR_GlobExpression_003a9648)
                                   (*(undefined4 *)(iVar3 + 4),param_1,0), iVar4 != 0 ||
                (iVar4 = (*(code *)PTR_GlobExpression_003a9648)
                                   (*(undefined4 *)(iVar3 + 8),param_1,0), iVar4 != 0)))) {
              iVar1 = iVar11 + 1;
              puVar2[iVar11] = iVar3;
            }
            iVar3 = (*(code *)PTR_GetNextValueInLinkedList_003a9310)
                              (*(undefined4 *)(puVar12 + -0x50cc));
            iVar11 = iVar1;
          } while (iVar3 != 0);
          puVar9 = puVar2 + iVar1;
        }
        (*(code *)PTR_UnlockSemaphoreInfo_003a9380)(*(undefined4 *)(puVar6 + -0x50d0));
        (*(code *)PTR_qsort_003a98d4)(puVar2,iVar1,4,PTR_LAB_003a8a48 + -0x6194);
        *param_2 = iVar1;
        *puVar9 = 0;
        return puVar2;
      }
    }
    return (undefined4 *)0x0;
  }
  uVar8 = 0x540;
  piVar7 = (int *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x14f8);
  puVar6 = PTR_LAB_003a88e0 + 0x45e0;
  puVar12 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar6,piVar7,0x540,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x1d14);
  if (puVar6 == (undefined *)0x0) {
    puVar2 = (undefined4 *)
             (**(code **)(puVar12 + 0x31dc88))
                       (*(int *)(puVar12 + 0x31cf60) + 0x45e0,*(int *)(puVar12 + 0x31cf68) + -0x14f8
                        ,0x5a0,*(int *)(puVar12 + 0x31cf68) + 0x1cf0);
    return puVar2;
  }
  iVar1 = *(int *)(puVar12 + 0x31cf68);
  (**(code **)(puVar12 + 0x31d860))
            (0x8000,iVar1 + -0x14f8,*(int *)(puVar12 + 0x31cf68) + 0x1ce0,0x5a1,
             *(int *)(puVar12 + 0x31cf64) + -0x62ac,puVar6);
  if (piVar7 == (int *)0x0) {
    puVar2 = (undefined4 *)
             (**(code **)(puVar12 + 0x31dc88))
                       (*(int *)(puVar12 + 0x31cf68) + 0x1810,iVar1 + -0x14f8,0x5a3,
                        *(int *)(puVar12 + 0x31cf68) + 0x1cf0);
    return puVar2;
  }
  iVar1 = *(int *)(puVar12 + 0x31cf68);
  pcVar13 = *(code **)(puVar12 + 0x31d92c);
  *piVar7 = 0;
  iVar1 = (*pcVar13)(iVar1 + 0x6c9c,iVar1 + 0x6c9c,uVar8);
  if (iVar1 != 0) {
    iVar11 = *(int *)(puVar12 + 0x31cf4c);
    iVar1 = (**(code **)(puVar12 + 0x31da74))(*(undefined4 *)(iVar11 + -0x50cc));
    puVar2 = (undefined4 *)(**(code **)(puVar12 + 0x31db8c))(iVar1 + 1,4);
    if (puVar2 != (undefined4 *)0x0) {
      iVar1 = *(int *)(puVar12 + 0x31cf4c);
      (**(code **)(puVar12 + 0x31dd68))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar12 + 0x31dbb8))(*(undefined4 *)(iVar11 + -0x50cc));
      iVar3 = (**(code **)(puVar12 + 0x31d990))(*(undefined4 *)(iVar11 + -0x50cc));
      if (iVar3 == 0) {
        iVar4 = 0;
        puVar9 = puVar2;
      }
      else {
        iVar4 = 0;
        do {
          puVar9 = puVar2 + iVar4;
          iVar10 = iVar4;
          if (*(int *)(iVar3 + 0x1c) == 0) {
            uVar8 = *(undefined4 *)(iVar3 + 4);
            iVar5 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);
            if (iVar5 == 0) {
LAB_0008baa8:
              uVar8 = *(undefined4 *)(iVar3 + 8);
              iVar3 = (**(code **)(puVar12 + 0x31dcc8))(uVar8,puVar6,0);
              if (iVar3 != 0) {
                iVar10 = iVar10 + 1;
                uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);
                *puVar9 = uVar8;
                puVar9 = puVar2 + iVar10;
              }
              goto LAB_0008bac8;
            }
            iVar10 = iVar4 + 1;
            uVar8 = (**(code **)(puVar12 + 0x31d734))(uVar8);
            iVar5 = *(int *)(iVar3 + 0x1c);
            *puVar9 = uVar8;
            puVar9 = puVar2 + iVar4 + 1;
            if (iVar5 == 0) goto LAB_0008baa8;
            pcVar13 = *(code **)(puVar12 + 0x31d990);
            iVar4 = iVar10;
          }
          else {
LAB_0008bac8:
            pcVar13 = *(code **)(puVar12 + 0x31d990);
            iVar4 = iVar10;
          }
          iVar3 = (*pcVar13)(*(undefined4 *)(iVar11 + -0x50cc));
        } while (iVar3 != 0);
      }
      (**(code **)(puVar12 + 0x31da00))(*(undefined4 *)(iVar1 + -0x50d0));
      (**(code **)(puVar12 + 0x31df54))(puVar2,iVar4,4,*(int *)(puVar12 + 0x31d0c8) + -0x61b0);
      *piVar7 = iVar4;
      *puVar9 = 0;
      return puVar2;
    }
  }
  return (undefined4 *)0x0;
}

