
char ** glob_vector(char *pat,char *dir,int flags)

{
  bool bVar1;
  char cVar2;
  char *pcVar3;
  int iVar4;
  undefined1 *puVar5;
  uint uVar6;
  code *pcVar7;
  int *piVar8;
  size_t len;
  int iVar9;
  char **ppcVar10;
  undefined4 *puVar11;
  char *pcVar12;
  char *__pattern;
  int iVar13;
  char *pcVar14;
  char **ppcVar15;
  uint flags_00;
  int *piVar16;
  char *pcVar17;
  char *pcVar18;
  uint uVar19;
  char *pcVar20;
  char **ppcVar21;
  int *piVar22;
  uint uVar23;
  char *pcVar24;
  int *unaff_s6;
  int *unaff_s7;
  undefined *puVar25;
  undefined1 *puVar26;
  undefined1 *puVar27;
  code *pcVar28;
  undefined1 auStack_130 [8];
  undefined1 auStack_128 [8];
  int local_120;
  undefined1 *local_11c;
  int iStack_fc;
  char *pcStack_f4;
  uint local_f0;
  int local_e4;
  int *piStack_e0;
  stat finfo;
  
  puVar26 = auStack_128;
  pcVar3 = *(char **)PTR___stack_chk_guard_0015858c;
  ppcVar21 = (char **)0x0;
  if ((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')) {
    ppcVar21 = (char **)0x0;
    iVar4 = glob_testdir(dir,0);
    if (iVar4 < 0) {
      ppcVar21 = (char **)FUN_000de910(1);
      return ppcVar21;
    }
    puVar27 = auStack_130;
    puVar26 = auStack_130;
    piVar8 = &local_120;
    local_120 = 0;
    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();
    bVar1 = puVar5 == (undefined1 *)0x0;
    if (bVar1) {
      piVar8 = (int *)0x0;
    }
    else {
      local_11c = puVar5;
      *puVar5 = 0;
    }
    uVar23 = (uint)!bVar1;
    puVar5 = auStack_130;
    if (pat == (char *)0x0) goto LAB_000ddefc;
    piVar22 = (int *)0x0;
    if (*pat != '\0') {
      local_e4 = 1;
      goto LAB_000ddf3c;
    }
  }
  else {
    local_e4 = 0;
    bVar1 = false;
    piVar8 = (int *)0x0;
LAB_000ddf3c:
    iVar4 = (*(code *)PTR_strlen_00158444)(pat);
    puVar5 = puVar26;
    if (local_e4 == 0) {
      iVar13 = glob_pattern_p(pat,(int)ppcVar21);
      if (iVar13 != 0) {
        iVar4 = (*(code *)PTR_opendir_001582b8)();
        if (iVar4 == 0) {
          ppcVar21 = (char **)FUN_000de910();
          return ppcVar21;
        }
        local_f0 = 1;
        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {
          local_f0 = 5;
        }
        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {
          local_f0 = local_f0 | 0x10;
        }
        if (*(int *)PTR_extended_glob_00156948 != 0) {
          local_f0 = local_f0 | 0x20;
        }
        uVar6 = flags >> 2 & 4;
        uVar19 = flags & 0x100;
        flags_00 = uVar6 | 8;
        if (uVar19 == 0) {
          flags_00 = uVar6;
        }
        piVar22 = (int *)0x0;
        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);
        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);
        unaff_s6 = (int *)PTR_interrupt_state_00156848;
        unaff_s7 = (int *)PTR_terminating_signal_00156844;
        puVar27 = puVar26;
        piVar16 = piVar8;
LAB_000de030:
        do {
          if (*unaff_s6 != 0) {
            ppcVar21 = (char **)FUN_000de200();
            return ppcVar21;
          }
          if (*unaff_s7 != 0) {
            ppcVar21 = (char **)FUN_000de200(2);
            return ppcVar21;
          }
          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();
          if (iVar13 != 0) {
            ppcVar21 = (char **)FUN_000de200(iVar4);
            return ppcVar21;
          }
          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();
          if (piVar8 == (int *)0x0) {
            (*(code *)PTR_closedir_001582bc)(iVar4);
            piVar8 = piVar16;
            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;
            iVar4 = (*(code *)PTR_strlen_00158444)(dir);
            flags = iVar4 + 1;
            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);
            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);
            if (piVar8 == (int *)0x0) {
              if ((char **)pat != (char **)0x0) {
                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);
                return ppcVar21;
              }
              goto LAB_000ddf10;
            }
            if ((char **)pat == (char **)0x0) {
              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);
              return ppcVar21;
            }
            piVar8[1] = (int)pat;
            *piVar8 = (int)piVar16;
            if (uVar19 == 0) {
              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);
            }
            else {
              *pat = '\0';
              dir = (char *)ppcVar21;
            }
            uVar23 = uVar23 + 1;
            ppcVar21 = (char **)dir;
            goto LAB_000ddf00;
          }
        } while (*piVar8 == 0 && piVar8[1] == 0);
        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();
        if (1 < uVar6) {
          ppcVar21 = (char **)((int)piVar8 + 0x13);
          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);
          unaff_s6 = (int *)PTR_interrupt_state_00156848;
          unaff_s7 = (int *)PTR_terminating_signal_00156844;
          if (iVar13 != 0) goto LAB_000de030;
        }
        ppcVar15 = (char **)((int)piVar8 + 0x13);
        ppcVar21 = ppcVar15;
        iVar13 = (*pcVar28)(pat,ppcVar15,flags);
        unaff_s6 = (int *)PTR_interrupt_state_00156848;
        unaff_s7 = (int *)PTR_terminating_signal_00156844;
        if (iVar13 == 0) {
          if ((flags & 0x18U) == 0) {
LAB_000de13c:
            if ((flags & 0x10U) == 0) {
              if ((flags & 8U) != 0) {
                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);
                return ppcVar21;
              }
LAB_000de658:
              len = (*(code *)PTR_strlen_00158444)(ppcVar15);
              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);
              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);
              unaff_s6 = (int *)PTR_interrupt_state_00156848;
              unaff_s7 = (int *)PTR_terminating_signal_00156844;
              if (iVar13 != 1) {
                if (local_e4 < 100000) {
                  piVar8 = (int *)(puVar27 + 8);
                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);
                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);
                  puVar27 = puVar27 + -8;
                  local_e4 = local_e4 + 8;
                }
                else {
                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                  if (piVar22 == (int *)0x0) {
                    piVar22 = piVar8;
                  }
                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);
                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);
                  if (piVar8 == (int *)0x0) {
                    if (iVar13 != 0) {
                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();
                      return ppcVar21;
                    }
                    ppcVar21 = (char **)FUN_000de200(0);
                    return ppcVar21;
                  }
                }
                if (iVar13 == 0) {
                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);
                  return ppcVar21;
                }
                *piVar8 = (int)piVar16;
                piVar8[1] = iVar13;
                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);
                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);
                uVar23 = uVar23 + 1;
                ppcVar21 = ppcVar15;
                unaff_s6 = (int *)PTR_interrupt_state_00156848;
                unaff_s7 = (int *)PTR_terminating_signal_00156844;
                piVar16 = piVar8;
              }
              goto LAB_000de030;
            }
            if (iStack_fc == 0) {
              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);
              if (ppcVar21 != (char **)0x0) {
                if (*ppcVar21 != (char *)0x0) {
                  piStack_e0 = (int *)0x0;
                  piVar8 = (int *)0x0;
                  ppcVar15 = ppcVar21;
                  do {
                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                    if (piVar22 == (int *)0x0) {
                      if (piStack_e0 != (int *)0x0) {
                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();
                        return ppcVar21;
                      }
                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);
                      return ppcVar21;
                    }
                    if (piVar8 == (int *)0x0) {
                      piVar8 = piVar22;
                    }
                    *piVar22 = (int)piStack_e0;
                    piVar22[1] = (int)*ppcVar15;
                    ppcVar15 = ppcVar15 + 1;
                    piStack_e0 = piVar22;
                  } while (*ppcVar15 != (char *)0x0);
                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);
                  return ppcVar21;
                }
                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {
                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);
                  return ppcVar21;
                }
              }
              goto LAB_000de17c;
            }
          }
          else {
            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);
            iStack_fc = (*pcVar7)(pcStack_f4,flags);
            if (-1 < iStack_fc) goto LAB_000de13c;
            if ((flags & 8U) != 0) {
              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);
              return ppcVar21;
            }
            if ((flags & 0x10U) == 0) goto LAB_000de658;
          }
          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {
            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);
            return ppcVar21;
          }
LAB_000de17c:
          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);
          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);
          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);
          if (puVar11 != (undefined4 *)0x0) {
            if (iVar13 == 0) {
              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);
              return ppcVar21;
            }
            *puVar11 = piVar16;
            puVar11[1] = iVar13;
            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);
            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);
            return ppcVar21;
          }
          if (iVar13 != 0) {
            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);
            return ppcVar21;
          }
          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);
          return ppcVar21;
        }
        goto LAB_000de030;
      }
      ppcVar21 = (char **)0x0;
      iVar13 = glob_testdir(dir,0);
      if (iVar13 < 0) {
        ppcVar21 = (char **)FUN_000de910(dir);
        return ppcVar21;
      }
      flags = (*(code *)PTR_strlen_00158444)();
      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);
      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);
      if (iVar13 != 0) {
        if (pcVar12 == (char *)0x0) {
          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);
          return ppcVar21;
        }
        (*(code *)PTR_strcpy_001584cc)(pcVar12);
        dequote_pathname(pcVar12);
        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);
        *(undefined1 *)(iVar13 + flags) = 0x2f;
        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);
        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);
        if (-1 < iVar4) {
          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();
          return ppcVar21;
        }
        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);
        return ppcVar21;
      }
      if (pcVar12 != (char *)0x0) {
        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);
        return ppcVar21;
      }
      bVar1 = true;
    }
LAB_000ddefc:
    puVar27 = puVar5;
    piVar22 = (int *)0x0;
  }
LAB_000ddf00:
  piVar16 = piVar8;
  if (bVar1) {
LAB_000ddf10:
    if (piVar16 != (int *)0x0) {
      if (piVar22 != (int *)0x0) {
        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);
        return ppcVar21;
      }
      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);
      return ppcVar21;
    }
    ppcVar15 = (char **)0x0;
    piVar8 = (int *)0x0;
  }
  else {
    pat = (char *)((uVar23 + 1) * 4);
    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);
    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;
    if (uVar23 != 0) {
      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);
      ppcVar10 = ppcVar15;
      do {
        *ppcVar10 = (char *)piVar16[1];
        ppcVar10 = ppcVar10 + 1;
        piVar16 = (int *)*piVar16;
      } while (ppcVar21 != ppcVar10);
    }
    pat = (char *)(ppcVar15 + uVar23 + 1);
    *(char **)((int)pat + -4) = (char *)0x0;
    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {
      if (piVar8 == piVar22) {
        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);
        return ppcVar21;
      }
      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);
      return ppcVar21;
    }
  }
  if (pcVar3 == *(char **)PTR___stack_chk_guard_0015858c) {
    return ppcVar15;
  }
  pcVar28 = glob_filename;
  puVar25 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  *(code **)(puVar27 + -4) = pcVar28;
  *(undefined1 **)(puVar27 + -8) = auStack_128;
  *(int **)(puVar27 + -0xc) = unaff_s7;
  *(int **)(puVar27 + -0x10) = unaff_s6;
  *(uint *)(puVar27 + -0x14) = uVar23;
  *(int *)(puVar27 + -0x18) = flags;
  *(char **)(puVar27 + -0x1c) = pat;
  *(int **)(puVar27 + -0x20) = piVar22;
  *(char ***)(puVar27 + -0x24) = ppcVar15;
  *(int **)(puVar27 + -0x28) = piVar8;
  *(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c;
  puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4);
  iVar4 = *(int *)(puVar27 + -0x50);
  if (puVar11 == (undefined4 *)0x0) {
    return (char **)0x0;
  }
  *puVar11 = 0;
  pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f);
  iVar4 = *(int *)(puVar27 + -0x50);
  if (pcVar12 == (char *)0x0) {
LAB_000deb88:
    bVar1 = false;
    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);
LAB_000deb94:
    if (*pcVar3 != '\0') {
      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();
      return ppcVar21;
    }
    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);
    iVar4 = *(int *)(puVar27 + -0x50);
    if (ppcVar15 == (char **)0x0) {
      if (!bVar1) {
        return (char **)0x0;
      }
LAB_000df3a4:
      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);
      return ppcVar21;
    }
    pcVar24 = (char *)0x0;
  }
  else {
    if (**(int **)(iVar4 + -0x7bf8) != 0) {
      pcVar12 = glob_dirscan(pcVar3,0x2f);
      iVar4 = *(int *)(puVar27 + -0x50);
      if (pcVar12 == (char *)0x0) goto LAB_000deb88;
    }
    pcVar24 = pcVar12 + (1 - (int)pcVar3);
    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));
    if (__pattern == (char *)0x0) {
      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);
      return ppcVar21;
    }
    pcVar20 = pcVar3;
    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);
    iVar4 = *(int *)(puVar27 + -0x50);
    __pattern[(int)pcVar24] = '\0';
    if (pcVar24 == (char *)0x0) {
      bVar1 = true;
      pcVar3 = pcVar12 + 1;
      goto LAB_000deb94;
    }
    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);
    if (iVar13 == 1) {
      uVar23 = (uint)ppcVar21 & 0xfffffffe;
      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;
      pcVar3 = __pattern;
      if (((uint)ppcVar21 & 0x400) == 0) {
        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);
      }
      else {
        if (*__pattern == '*') {
          if (__pattern[1] == '*') {
            pcVar20 = __pattern;
            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {
              do {
                pcVar24 = pcVar20;
                pcVar20 = pcVar24;
                if (pcVar24[1] != '*') break;
                if (pcVar24[2] == '/') {
                  pcVar20 = pcVar24 + 3;
                  cVar2 = pcVar24[3];
                  while (cVar2 == '/') {
                    pcVar20 = pcVar20 + 1;
                    cVar2 = *pcVar20;
                  }
                  pcVar3 = pcVar24;
                  if (cVar2 == '\0') break;
                }
                else if (pcVar24[2] != '\0') {
                  cVar2 = *pcVar24;
                  goto LAB_000dedb8;
                }
                pcVar3 = pcVar24;
              } while (*pcVar20 == '*');
              cVar2 = *pcVar20;
LAB_000dedb8:
              *(int *)(puVar27 + -0x40) = (int)cVar2;
              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);
              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);
              uVar23 = uVar23 | 0x210;
              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;
            }
            else {
              *(undefined4 *)(puVar27 + -0x48) = 0;
            }
          }
          else {
            *(undefined4 *)(puVar27 + -0x48) = 0;
          }
        }
        else {
          *(undefined4 *)(puVar27 + -0x48) = 0;
        }
        pcVar18 = pcVar24;
        pcVar20 = pcVar24;
        if (3 < (int)pcVar24) {
          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||
             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;
          pcVar14 = pcVar3 + (int)(pcVar24 + -6);
          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&
                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {
            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))
            break;
          }
        }
        bVar1 = pcVar20 != pcVar24;
        pcVar24 = pcVar18;
        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&
           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {
          pcVar24 = pcVar18 + -3;
        }
      }
LAB_000dee6c:
      if (pcVar3[(int)(pcVar24 + -1)] == '/') {
        pcVar3[(int)(pcVar24 + -1)] = '\0';
      }
      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);
      *(char ***)(puVar27 + -0x30) = ppcVar21;
      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
      return ppcVar21;
    }
    if (pcVar12[1] != '\0') {
      dequote_pathname(__pattern);
      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);
      return ppcVar21;
    }
    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);
    iVar4 = *(int *)(puVar27 + -0x50);
    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;
    if (pcVar24 == (char *)0x0) {
      bVar1 = true;
    }
    else {
      bVar1 = true;
      if (iVar13 != 2) {
        pcVar12 = pcVar12 + (2 - (int)pcVar3);
        goto LAB_000df638;
      }
      if (((uint)ppcVar21 & 0x800) == 0) {
        bVar1 = true;
      }
      else {
        dequote_pathname(__pattern);
        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);
        iVar4 = *(int *)(puVar27 + -0x50);
        bVar1 = true;
      }
    }
  }
  pcVar12 = pcVar24 + 1;
LAB_000df638:
  pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);
  iVar4 = *(int *)(puVar27 + -0x50);
  *ppcVar15 = pcVar3;
  if (pcVar3 == (char *)0x0) {
    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);
    return ppcVar21;
  }
  (**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12);
  if (!bVar1) {
    ppcVar15[1] = (char *)0x0;
    return ppcVar15;
  }
  ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
  return ppcVar21;
}



int * glob_vector(int *param_1,int *param_2,int *param_3)

{
  bool bVar1;
  char cVar2;
  int iVar3;
  undefined1 *puVar4;
  code *pcVar5;
  undefined4 uVar6;
  int *piVar7;
  char *__pattern;
  char *pcVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int *piVar12;
  uint uVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  int iVar17;
  int *piVar18;
  char *pcVar19;
  int *unaff_s0;
  int *unaff_s2;
  char *pcVar20;
  uint unaff_s5;
  uint uVar21;
  int *unaff_s6;
  uint uVar22;
  undefined4 *puVar23;
  int *unaff_s7;
  undefined *puVar24;
  int iVar25;
  int iVar26;
  undefined1 *puVar27;
  code *pcVar28;
  undefined1 auStack_130 [8];
  undefined1 local_128 [8];
  int local_120;
  undefined1 *local_11c;
  int local_fc;
  int *local_f4;
  uint local_f0;
  int local_e8;
  int local_e4;
  int *local_e0;
  undefined1 auStack_d0 [164];
  char *local_2c;
  
  puVar27 = local_128;
  local_2c = *(char **)PTR___stack_chk_guard_0015858c;
  piVar18 = (int *)0x0;
  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {
    piVar18 = (int *)0x0;
    iVar3 = FUN_000dd618(param_2);
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    puVar27 = local_128;
    if (iVar3 < 0) goto LAB_000de914;
    puVar27 = auStack_130;
    unaff_s0 = &local_120;
    local_120 = 0;
    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);
    bVar1 = puVar4 == (undefined1 *)0x0;
    if (bVar1) {
      unaff_s0 = (int *)0x0;
    }
    else {
      local_11c = puVar4;
      *puVar4 = 0;
    }
    unaff_s5 = (uint)!bVar1;
    puVar4 = auStack_130;
    if (param_1 == (int *)0x0) goto LAB_000ddefc;
    unaff_s2 = (int *)0x0;
    if (*(char *)param_1 != '\0') {
      local_e4 = 1;
      puVar27 = auStack_130;
      goto LAB_000ddf3c;
    }
    goto LAB_000ddf00;
  }
  local_e4 = 0;
  bVar1 = false;
  unaff_s0 = (int *)0x0;
LAB_000ddf3c:
  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);
  puVar4 = puVar27;
  if (local_e4 != 0) {
LAB_000ddefc:
    puVar27 = puVar4;
    unaff_s2 = (int *)0x0;
    goto LAB_000ddf00;
  }
  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);
  if (iVar25 == 0) {
    piVar18 = (int *)0x0;
    iVar25 = FUN_000dd618(param_2);
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    if (-1 < iVar25) {
      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);
      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));
      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);
      if (piVar7 == (int *)0x0) {
        if (iVar3 == 0) {
          bVar1 = true;
        }
        else {
          (*(code *)PTR_free_001585ac)(iVar3);
          bVar1 = true;
        }
      }
      else if (iVar3 == 0) {
        piVar18 = param_1;
        (*(code *)PTR_free_001585ac)(piVar7);
        bVar1 = true;
      }
      else {
        (*(code *)PTR_strcpy_001584cc)(iVar3);
        FUN_000ddacc(iVar3);
        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);
        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;
        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);
        piVar18 = piVar7;
        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);
        if (iVar25 < 0) {
          (*(code *)PTR_free_001585ac)(piVar7);
          (*(code *)PTR_free_001585ac)(iVar3);
          unaff_s2 = (int *)0x0;
          goto LAB_000ddf00;
        }
        (*(code *)PTR_free_001585ac)();
        unaff_s0 = (int *)(puVar27 + 8);
        *unaff_s0 = 0;
        *(int *)(puVar27 + 0xc) = iVar3;
        unaff_s5 = 1;
        puVar4 = puVar27 + -8;
      }
      goto LAB_000ddefc;
    }
  }
  else {
    iVar3 = (*(code *)PTR_opendir_001582b8)();
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    if (iVar3 != 0) {
      local_f0 = 1;
      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {
        local_f0 = 5;
      }
      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {
        local_f0 = local_f0 | 0x10;
      }
      if (*(int *)PTR_extended_glob_00156948 != 0) {
        local_f0 = local_f0 | 0x20;
      }
      uVar13 = (int)param_3 >> 2 & 4;
      uVar22 = (uint)param_3 & 0x100;
      uVar21 = uVar13 | 8;
      if (uVar22 == 0) {
        uVar21 = uVar13;
      }
      unaff_s2 = (int *)0x0;
      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);
      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);
      piVar7 = unaff_s0;
      unaff_s6 = (int *)PTR_interrupt_state_00156848;
      piVar9 = (int *)PTR_terminating_signal_00156844;
LAB_000de030:
      do {
        unaff_s7 = piVar9;
        if (*unaff_s6 != 0) goto LAB_000de7e4;
        if (*unaff_s7 != 0) {
          bVar1 = true;
          goto LAB_000de200;
        }
        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);
        if (iVar25 != 0) {
          bVar1 = true;
          goto LAB_000de200;
        }
        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);
        if (piVar10 == (int *)0x0) goto LAB_000de200;
        piVar9 = unaff_s7;
        if (*piVar10 != 0 || piVar10[1] != 0) {
          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();
          if (1 < uVar13) {
            piVar18 = (int *)((int)piVar10 + 0x13);
            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);
            unaff_s6 = (int *)PTR_interrupt_state_00156848;
            piVar9 = (int *)PTR_terminating_signal_00156844;
            if (iVar25 != 0) goto LAB_000de030;
          }
          piVar10 = (int *)((int)piVar10 + 0x13);
          piVar18 = piVar10;
          iVar25 = (*pcVar28)(param_1,piVar10,param_3);
          unaff_s6 = (int *)PTR_interrupt_state_00156848;
          piVar9 = (int *)PTR_terminating_signal_00156844;
          if (iVar25 == 0) {
            if (((uint)param_3 & 0x18) == 0) {
LAB_000de13c:
              if (((uint)param_3 & 0x10) != 0) {
                if (local_fc == 0) {
                  piVar18 = local_f4;
                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);
                  if (piVar9 != (int *)0x0) {
                    if (*piVar9 == 0) {
                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {
                        (*(code *)PTR_free_001585ac)(piVar9);
                      }
                    }
                    else {
                      local_e8 = local_fc;
                      local_e0 = (int *)0x0;
                      unaff_s7 = (int *)0x0;
                      unaff_s6 = piVar9;
                      do {
                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;
                        if (unaff_s7 == (int *)0x0) {
                          unaff_s7 = piVar10;
                        }
                        *piVar10 = (int)local_e0;
                        piVar10[1] = *unaff_s6;
                        local_e8 = local_e8 + 1;
                        unaff_s6 = unaff_s6 + 1;
                        local_e0 = piVar10;
                      } while (*unaff_s6 != 0);
                      (*(code *)PTR_free_001585ac)(piVar9);
                      if (local_e8 != 0) {
                        if (unaff_s2 == (int *)0x0) {
                          unaff_s2 = unaff_s7;
                        }
                        *unaff_s7 = (int)piVar7;
                        unaff_s5 = unaff_s5 + local_e8;
                        piVar7 = piVar10;
                      }
                    }
                  }
                }
                else {
LAB_000de154:
                  piVar18 = (int *)0x0;
                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {
                    (*(code *)PTR_free_001585ac)(local_f4);
                    unaff_s6 = (int *)PTR_interrupt_state_00156848;
                    piVar9 = (int *)PTR_terminating_signal_00156844;
                    goto LAB_000de030;
                  }
                }
                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                if (unaff_s2 == (int *)0x0) {
                  unaff_s2 = piVar9;
                }
                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);
                unaff_s6 = (int *)(iVar25 + 1);
                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);
                if (piVar9 == (int *)0x0) {
                  if (iVar25 != 0) {
                    (*(code *)PTR_free_001585ac)(iVar25);
                  }
                }
                else {
                  if (iVar25 != 0) {
                    *piVar9 = (int)piVar7;
                    piVar9[1] = iVar25;
                    piVar18 = local_f4;
                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);
                    (*(code *)PTR_free_001585ac)(local_f4);
                    unaff_s5 = unaff_s5 + 1;
                    piVar7 = piVar9;
                    unaff_s6 = (int *)PTR_interrupt_state_00156848;
                    piVar9 = (int *)PTR_terminating_signal_00156844;
                    goto LAB_000de030;
                  }
                  (*(code *)PTR_free_001585ac)(piVar9);
                }
                (*(code *)PTR_free_001585ac)(local_f4);
                bVar1 = true;
                goto LAB_000de200;
              }
              if (((uint)param_3 & 8) != 0) {
                (*(code *)PTR_free_001585ac)(local_f4);
              }
            }
            else {
              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);
              piVar18 = param_3;
              local_fc = (*pcVar5)(local_f4);
              if (-1 < local_fc) goto LAB_000de13c;
              if (((uint)param_3 & 8) != 0) {
                (*(code *)PTR_free_001585ac)(local_f4);
                unaff_s6 = (int *)PTR_interrupt_state_00156848;
                piVar9 = (int *)PTR_terminating_signal_00156844;
                goto LAB_000de030;
              }
              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;
            }
            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);
            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);
            iVar25 = strmatch(param_1,piVar18,local_f0);
            unaff_s6 = (int *)PTR_interrupt_state_00156848;
            piVar9 = (int *)PTR_terminating_signal_00156844;
            if (iVar25 != 1) {
              if (local_e4 < 100000) {
                unaff_s6 = (int *)(puVar27 + 8);
                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);
                puVar27 = puVar27 + -8;
                local_e4 = local_e4 + 8;
              }
              else {
                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                if (unaff_s2 == (int *)0x0) {
                  unaff_s2 = unaff_s6;
                }
                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);
                if (unaff_s6 == (int *)0x0) {
                  if (unaff_s7 == (int *)0x0) {
                    bVar1 = true;
                  }
                  else {
                    (*(code *)PTR_free_001585ac)(unaff_s7);
                    bVar1 = true;
                  }
                  goto LAB_000de200;
                }
              }
              if (unaff_s7 == (int *)0x0) {
                (*(code *)PTR_free_001585ac)(unaff_s6);
                bVar1 = true;
                unaff_s7 = (int *)0x0;
                goto LAB_000de200;
              }
              *unaff_s6 = (int)piVar7;
              unaff_s6[1] = (int)unaff_s7;
              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);
              unaff_s5 = unaff_s5 + 1;
              piVar18 = piVar10;
              piVar7 = unaff_s6;
              unaff_s6 = (int *)PTR_interrupt_state_00156848;
              piVar9 = (int *)PTR_terminating_signal_00156844;
            }
          }
        }
      } while( true );
    }
  }
  goto LAB_000de914;
LAB_000de7e4:
  bVar1 = true;
  goto LAB_000de200;
LAB_000df004:
  puVar23 = puVar23 + 1;
  pcVar19 = (char *)*puVar23;
  piVar9 = *(int **)(puVar27 + -0x30);
  if (pcVar19 == (char *)0x0) {
LAB_000df34c:
    if (*piVar9 != 0) {
      pcVar28 = *(code **)(iVar25 + -0x5f94);
      do {
        piVar9 = piVar9 + 1;
        (*pcVar28)();
        iVar25 = *(int *)(puVar27 + -0x50);
        pcVar28 = *(code **)(iVar25 + -0x5f94);
      } while (*piVar9 != 0);
    }
    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));
    return piVar7;
  }
  goto LAB_000df010;
joined_r0x000de570:
  while (local_e0 != (int *)0x0) {
    local_e0 = (int *)*local_e0;
    (*(code *)PTR_free_001585ac)();
  }
  (*(code *)PTR_free_001585ac)(piVar9);
  (*(code *)PTR_free_001585ac)(local_f4);
  bVar1 = true;
LAB_000de200:
  (*(code *)PTR_closedir_001582bc)(iVar3);
  unaff_s0 = piVar7;
  if (((uint)param_3 & 0x210) == 0x210) {
    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);
    param_3 = (int *)(iVar3 + 1);
    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);
    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);
    if (unaff_s0 == (int *)0x0) {
      unaff_s0 = piVar7;
      if (param_1 != (int *)0x0) {
        (*(code *)PTR_free_001585ac)(param_1);
      }
    }
    else {
      if (param_1 != (int *)0x0) {
        unaff_s0[1] = (int)param_1;
        *unaff_s0 = (int)piVar7;
        if (uVar22 == 0) {
          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);
        }
        else {
          *(undefined1 *)param_1 = 0;
          param_2 = piVar18;
        }
        unaff_s5 = unaff_s5 + 1;
        piVar18 = param_2;
        goto LAB_000ddf00;
      }
      (*(code *)PTR_free_001585ac)(unaff_s0);
      unaff_s0 = piVar7;
    }
LAB_000ddf10:
    piVar7 = unaff_s0;
    if (unaff_s0 == (int *)0x0) {
      piVar7 = (int *)0x0;
    }
    else {
      do {
        if (unaff_s2 == (int *)0x0) {
          (*(code *)PTR_free_001585ac)(piVar7[1]);
          piVar7 = (int *)*piVar7;
        }
        else {
          if (piVar7 == unaff_s2) {
            unaff_s2 = (int *)0x0;
          }
          (*(code *)PTR_free_001585ac)(piVar7[1]);
          unaff_s0 = (int *)*piVar7;
          (*(code *)PTR_free_001585ac)(piVar7);
          piVar7 = unaff_s0;
        }
      } while (piVar7 != (int *)0x0);
    }
  }
  else {
LAB_000ddf00:
    if (bVar1) goto LAB_000ddf10;
    param_1 = (int *)((unaff_s5 + 1) * 4);
    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);
    if (piVar7 == (int *)0x0) goto LAB_000ddf10;
    if (unaff_s5 != 0) {
      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);
      piVar9 = piVar7;
      piVar10 = unaff_s0;
      do {
        *piVar9 = piVar10[1];
        piVar9 = piVar9 + 1;
        piVar10 = (int *)*piVar10;
      } while (piVar18 != piVar9);
    }
    param_1 = piVar7 + unaff_s5 + 1;
    param_1[-1] = 0;
    piVar9 = unaff_s0;
    if (unaff_s2 != (int *)0x0) {
      while (piVar9 != (int *)0x0) {
        unaff_s0 = piVar9;
        if (piVar9 == unaff_s2) {
          (*(code *)PTR_free_001585ac)(unaff_s2);
          break;
        }
        param_1 = (int *)*piVar9;
        (*(code *)PTR_free_001585ac)(piVar9);
        piVar9 = param_1;
      }
    }
  }
LAB_000de914:
  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {
    return piVar7;
  }
  pcVar28 = glob_filename;
  pcVar19 = local_2c;
  puVar24 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  *(code **)(puVar27 + -4) = pcVar28;
  *(undefined1 **)(puVar27 + -8) = local_128;
  *(int **)(puVar27 + -0xc) = unaff_s7;
  *(int **)(puVar27 + -0x10) = unaff_s6;
  *(uint *)(puVar27 + -0x14) = unaff_s5;
  *(int **)(puVar27 + -0x18) = param_3;
  *(int **)(puVar27 + -0x1c) = param_1;
  *(int **)(puVar27 + -0x20) = unaff_s2;
  *(int **)(puVar27 + -0x24) = piVar7;
  *(int **)(puVar27 + -0x28) = unaff_s0;
  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;
  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);
  iVar3 = *(int *)(puVar27 + -0x50);
  if (piVar7 == (int *)0x0) {
    return (int *)0x0;
  }
  *piVar7 = 0;
  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);
  iVar25 = *(int *)(puVar27 + -0x50);
  if (iVar3 == 0) {
LAB_000deb88:
    iVar3 = 0;
    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);
LAB_000deb94:
    if (*pcVar19 == '\0') {
      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);
      iVar26 = *(int *)(puVar27 + -0x50);
      if (piVar7 == (int *)0x0) {
        if (iVar3 == 0) {
          return (int *)0x0;
        }
LAB_000df3a4:
        (**(code **)(iVar26 + -0x5f94))(__pattern);
        return (int *)0x0;
      }
      uVar21 = 0;
LAB_000df634:
      iVar17 = uVar21 + 1;
LAB_000df638:
      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);
      iVar25 = *(int *)(puVar27 + -0x50);
      *piVar7 = iVar26;
      if (iVar26 != 0) {
        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);
        if (iVar3 == 0) {
          piVar7[1] = 0;
          return piVar7;
        }
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
        piVar7[1] = 0;
        return piVar7;
      }
LAB_000df2ac:
      (**(code **)(iVar25 + -0x5f94))(piVar7);
      iVar25 = *(int *)(puVar27 + -0x50);
      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {
        piVar18 = *(int **)(iVar25 + -0x7cfc);
      }
      else {
        (**(code **)(iVar25 + -0x5f94))(__pattern);
        iVar25 = *(int *)(puVar27 + -0x50);
        piVar18 = *(int **)(iVar25 + -0x7cfc);
      }
LAB_000df2c8:
      if (*piVar18 == 0) {
        piVar18 = *(int **)(iVar25 + -0x7cf8);
      }
      else {
        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));
        iVar25 = *(int *)(puVar27 + -0x50);
        piVar18 = *(int **)(iVar25 + -0x7cf8);
      }
      if (*piVar18 == 0) {
        pcVar28 = *(code **)(iVar25 + -0x7d20);
      }
      else {
        (**(code **)(iVar25 + -0x7cf4))();
        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);
      }
      (*pcVar28)();
      return (int *)0x0;
    }
    (**(code **)(iVar25 + -0x5f94))();
    iVar25 = *(int *)(puVar27 + -0x50);
    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;
    uVar13 = uVar22;
    if (((uint)piVar18 & 0x400) == 0) {
      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
    }
    else if (*pcVar19 == '*') {
      uVar21 = 0;
LAB_000df42c:
      pcVar8 = __pattern;
      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {
        uVar13 = uVar22 | 0x210;
        if (uVar21 == 0) {
          if (((uint)piVar18 & 0x10) == 0) {
            uVar13 = uVar22 & 0xfffffdff | 0x10;
          }
          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
        }
      }
      else {
        uVar13 = uVar22;
        if (uVar21 == 0) {
          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
        }
      }
    }
    else {
      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
    }
LAB_000debcc:
    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);
    iVar25 = *(int *)(puVar27 + -0x50);
    if (piVar7 != (int *)0x0) {
LAB_000debec:
      if (piVar7 != *(int **)(iVar25 + -0x7174)) {
        pcVar19 = __pattern;
        if ((uVar13 & 0x10) != 0) {
          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);
        }
        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);
        if (iVar3 == 0) {
          return piVar18;
        }
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
        return piVar18;
      }
    }
    if (iVar3 == 0) {
      piVar18 = *(int **)(iVar25 + -0x7cfc);
      goto LAB_000df4b0;
    }
  }
  else {
    if (**(int **)(iVar25 + -0x7bf8) != 0) {
      iVar3 = glob_dirscan(pcVar19,0x2f);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (iVar3 == 0) goto LAB_000deb88;
    }
    iVar17 = iVar3 - (int)pcVar19;
    uVar21 = iVar17 + 1;
    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);
    if (__pattern == (char *)0x0) {
      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
      return (int *)0x0;
    }
    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);
    iVar25 = *(int *)(puVar27 + -0x50);
    __pattern[uVar21] = '\0';
    pcVar20 = (char *)(iVar3 + 1);
    if (uVar21 == 0) {
      iVar3 = 1;
      pcVar19 = pcVar20;
      goto LAB_000deb94;
    }
    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);
    if (iVar25 == 1) {
      uVar13 = (uint)piVar18 & 0xfffffffe;
      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;
      pcVar19 = __pattern;
      if (((uint)piVar18 & 0x400) == 0) {
        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);
      }
      else {
        if (*__pattern == '*') {
          if (__pattern[1] == '*') {
            pcVar8 = __pattern;
            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {
              do {
                pcVar15 = pcVar8;
                pcVar8 = pcVar15;
                if (pcVar15[1] != '*') break;
                if (pcVar15[2] == '/') {
                  pcVar8 = pcVar15 + 3;
                  cVar2 = pcVar15[3];
                  while (cVar2 == '/') {
                    pcVar8 = pcVar8 + 1;
                    cVar2 = *pcVar8;
                  }
                  pcVar19 = pcVar15;
                  if (cVar2 == '\0') break;
                }
                else if (pcVar15[2] != '\0') {
                  cVar2 = *pcVar15;
                  goto LAB_000dedb8;
                }
                pcVar19 = pcVar15;
              } while (*pcVar8 == '*');
              cVar2 = *pcVar8;
LAB_000dedb8:
              *(int *)(puVar27 + -0x40) = (int)cVar2;
              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);
              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);
              uVar13 = uVar13 | 0x210;
              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;
            }
            else {
              *(undefined4 *)(puVar27 + -0x48) = 0;
            }
          }
          else {
            *(undefined4 *)(puVar27 + -0x48) = 0;
          }
        }
        else {
          *(undefined4 *)(puVar27 + -0x48) = 0;
        }
        uVar16 = uVar21;
        uVar22 = uVar21;
        if (3 < (int)uVar21) {
          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||
             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;
          pcVar8 = pcVar19 + (uVar21 - 6);
          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&
                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {
            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;
          }
        }
        bVar1 = uVar22 != uVar21;
        uVar21 = uVar16;
        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&
           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {
          uVar21 = uVar16 - 3;
        }
      }
LAB_000dee6c:
      if (pcVar19[uVar21 - 1] == '/') {
        pcVar19[uVar21 - 1] = '\0';
      }
      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);
      *(int *)(puVar27 + -0x30) = iVar17;
      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (iVar17 == 0) {
LAB_000df274:
        iVar3 = 1;
        __pattern = (char *)*piVar7;
        piVar18 = piVar7;
        while (__pattern != (char *)0x0) {
          piVar18 = piVar18 + 1;
          (**(code **)(iVar25 + -0x5f94))(__pattern);
          iVar25 = *(int *)(puVar27 + -0x50);
          __pattern = (char *)*piVar18;
        }
        goto LAB_000df2ac;
      }
      if (iVar17 == *(int *)(iVar25 + -0x7174)) {
        (**(code **)(iVar25 + -0x5f94))(piVar7);
        return *(int **)(puVar27 + -0x30);
      }
      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);
      if (pcVar19 == (char *)0x0) {
        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);
      }
      puVar23 = *(undefined4 **)(puVar27 + -0x30);
      if (*(int *)(puVar27 + -0x48) != 0) {
        if (*(char *)(iVar3 + 1) != '*') {
          iVar17 = *(int *)(iVar25 + -0x7f90);
          goto LAB_000def94;
        }
        puVar23 = *(undefined4 **)(puVar27 + -0x30);
        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {
          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));
          iVar25 = *(int *)(puVar27 + -0x50);
          iVar3 = *(int *)(puVar27 + -0x48);
          __pattern = (char *)0x0;
          pcVar19 = pcVar20;
          goto LAB_000deb94;
        }
      }
      iVar17 = *(int *)(iVar25 + -0x7f90);
LAB_000def94:
      iVar26 = 1;
      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;
      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);
      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;
LAB_000df010:
      uVar21 = (uint)piVar18 & 0xfffffdee;
      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {
        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;
      }
      else {
        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {
          uVar21 = uVar21 | 0x210;
        }
        if (*pcVar19 == '\0') {
LAB_000defd0:
          uVar21 = uVar21 | 0x100;
          pcVar19 = *(char **)(puVar27 + -0x2c);
        }
      }
      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (piVar9 == (int *)0x0) goto LAB_000df26c;
      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;
      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;
      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||
          (*(char *)(iVar3 + 2) != '*')) ||
         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {
        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);
        iVar25 = *(int *)(puVar27 + -0x50);
        *(undefined4 *)(puVar27 + -0x3c) = 0;
LAB_000df0a0:
        iVar17 = 0;
        if (*piVar10 != 0) {
LAB_000df0ac:
          iVar17 = 0;
          piVar12 = piVar10;
          do {
            piVar12 = piVar12 + 1;
            iVar17 = iVar17 + 1;
          } while (*piVar12 != 0);
        }
      }
      else {
        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;
        piVar10 = piVar9;
        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;
        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;
        if (((uint)piVar18 & 0x100) != 0) {
          *(undefined4 *)(puVar27 + -0x3c) = 0;
          goto LAB_000df0a0;
        }
        if ((char *)*piVar9 != (char *)0x0) {
          piVar12 = piVar9;
          if (*(char *)*piVar9 == '\0') {
            do {
              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;
              pcVar19 = (char *)piVar12[1];
              if (pcVar19 == (char *)0x0) {
                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];
                *(undefined4 *)(puVar27 + -0x3c) = 1;
                goto LAB_000df0a0;
              }
              piVar12 = piVar12 + 1;
            } while (*pcVar19 == '\0');
            iVar17 = *(int *)(puVar27 + -0x3c);
            piVar12 = piVar9 + iVar17;
            do {
              iVar11 = *piVar12;
              piVar12[-iVar17] = iVar11;
              piVar12 = piVar12 + 1;
            } while (iVar11 != 0);
            *(undefined4 *)(puVar27 + -0x3c) = 1;
            goto LAB_000df0a0;
          }
          goto LAB_000df0ac;
        }
        iVar17 = 0;
      }
      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);
      iVar25 = *(int *)(puVar27 + -0x50);
      *(int *)(puVar27 + -0x48) = iVar17;
      if (iVar17 == 0) {
        pcVar28 = *(code **)(iVar25 + -0x5f94);
        iVar3 = *piVar10;
        piVar18 = piVar10;
        while (iVar3 != 0) {
          piVar18 = piVar18 + 1;
          (*pcVar28)();
          iVar25 = *(int *)(puVar27 + -0x50);
          pcVar28 = *(code **)(iVar25 + -0x5f94);
          iVar3 = *piVar18;
        }
        (**(code **)(iVar25 + -0x5f94))(piVar10);
        iVar25 = *(int *)(puVar27 + -0x50);
LAB_000df26c:
        piVar18 = *(int **)(iVar25 + -0x7cfc);
        if (piVar7 == (int *)0x0) goto LAB_000df2c8;
        goto LAB_000df274;
      }
      iVar17 = *piVar10;
      if (iVar17 != 0) {
        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;
        piVar7 = piVar10;
        do {
          piVar7 = piVar7 + 1;
          iVar26 = iVar26 + 1;
          *(int *)(iVar11 + -4) = iVar17;
          iVar17 = *piVar7;
          iVar11 = iVar11 + 4;
        } while (iVar17 != 0);
      }
      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;
      if (piVar9 == piVar10) {
        iVar17 = *(int *)(puVar27 + -0x3c);
        if (*(int *)(puVar27 + -0x38) != 0) {
          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;
          iVar17 = *(int *)(puVar27 + -0x3c);
          if (*(char *)(iVar3 + 2) == '*') {
            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;
            (**(code **)(iVar25 + -0x5f94))(piVar10);
            iVar25 = *(int *)(puVar27 + -0x50);
            iVar17 = *(int *)(puVar27 + -0x3c);
          }
        }
      }
      else {
        (**(code **)(iVar25 + -0x5f94))(piVar10);
        iVar25 = *(int *)(puVar27 + -0x50);
LAB_000df14c:
        iVar17 = *(int *)(puVar27 + -0x3c);
      }
      piVar7 = *(int **)(puVar27 + -0x48);
      if (iVar17 == 0) goto LAB_000df004;
      piVar9 = *(int **)(puVar27 + -0x30);
      goto LAB_000df34c;
    }
    if (*(char *)(iVar3 + 1) == '\0') {
      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);
      iVar26 = *(int *)(puVar27 + -0x50);
      if (piVar7 == (int *)0x0) goto LAB_000df3a4;
      if (uVar21 == 0) {
        iVar3 = 1;
        goto LAB_000df634;
      }
      iVar3 = 1;
      if (iVar25 == 2) {
        if (((uint)piVar18 & 0x800) == 0) {
          iVar3 = 1;
        }
        else {
          FUN_000ddacc(__pattern);
          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);
          iVar26 = *(int *)(puVar27 + -0x50);
          iVar3 = 1;
        }
        goto LAB_000df634;
      }
      iVar17 = iVar17 + 2;
      goto LAB_000df638;
    }
    FUN_000ddacc(__pattern);
    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
    iVar25 = *(int *)(puVar27 + -0x50);
    uVar22 = (uint)piVar18 & 0xfffffffe;
    uVar13 = uVar22;
    if (((uint)piVar18 & 0x400) != 0) {
      if (*(char *)(iVar3 + 1) == '*') {
        iVar3 = 1;
        pcVar19 = pcVar20;
        goto LAB_000df42c;
      }
      iVar3 = 1;
      pcVar8 = __pattern;
      pcVar19 = pcVar20;
      goto LAB_000debcc;
    }
    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);
    iVar25 = *(int *)(puVar27 + -0x50);
    if (piVar7 != (int *)0x0) {
      iVar3 = 1;
      goto LAB_000debec;
    }
  }
  (**(code **)(iVar25 + -0x5f94))(__pattern);
  iVar25 = *(int *)(puVar27 + -0x50);
  piVar18 = *(int **)(iVar25 + -0x7cfc);
LAB_000df4b0:
  if (*piVar18 == 0) {
    piVar18 = *(int **)(iVar25 + -0x7cf8);
  }
  else {
    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));
    iVar25 = *(int *)(puVar27 + -0x50);
    piVar18 = *(int **)(iVar25 + -0x7cf8);
  }
  if (*piVar18 == 0) {
    pcVar28 = *(code **)(iVar25 + -0x7d20);
  }
  else {
    (**(code **)(iVar25 + -0x7cf4))();
    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);
  }
  (*pcVar28)();
  return piVar7;
}


lui gp,0x8
addiu gp,gp,0x714
addu gp,gp,t9
addiu sp,sp,-0x128
sw ra,0x124(sp)
sw s8,0x120(sp)
sw s7,0x11c(sp)
sw s6,0x118(sp)
sw s5,0x114(sp)
sw s4,0x110(sp)
sw s3,0x10c(sp)
sw s2,0x108(sp)
sw s1,0x104(sp)
sw s0,0x100(sp)
or s8,sp,zero
sw gp,0x10(sp)
or s3,a0,zero
sw a1,0x54(s8)
or s4,a2,zero
lw v0,-0x5fb4(gp)
lw v0,0x0(v0)
sw v0,0xfc(s8)
beq a0,zero,0x000dde9c
_or a1,zero,zero
lb v0,0x0(a0)
bne v0,zero,0x000ddf30
_or s5,zero,zero
or a1,zero,zero
lw a0,0x54(s8)
lw t9,-0x6990(gp)
addiu t9,t9,-0x29e8
bal 0x000dd618
_nop
lw gp,0x10(s8)
bltz v0,0x000de958
_li a0,0x1
addiu sp,sp,-0x8
addiu s1,sp,0x10
sw zero,0x10(sp)
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000ddf20
_or s0,v0,zero
sw v0,0x4(s1)
sb zero,0x0(v0)
or s0,s1,zero
sw zero,0x4c(s8)
li s5,0x1
bne s3,zero,0x000de9d0
_nop
or s2,zero,zero
lw v0,0x4c(s8)
beq v0,zero,0x000de868
_lw t9,-0x60a4(gp)
or s1,s0,zero
bne s1,zero,0x000de9a0
_or v0,s1,zero
b 0x000de914
_nop
li v0,0x1
sw v0,0x4c(s8)
b 0x000ddef4
_or s5,zero,zero
sw zero,0x44(s8)
sw zero,0x4c(s8)
or s0,zero,zero
or a0,s3,zero
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s1,v0,zero
lw v0,0x44(s8)
bne v0,zero,0x000ddefc
_or a0,s3,zero
lw t9,-0x6d90(gp)
bal 0x000ddc98
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de298
_lw a0,0x54(s8)
lw t9,-0x6288(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de960
_sw v0,0x50(s8)
lw v0,-0x70d8(gp)
lw a0,0x0(v0)
li v1,0x5
li v0,0x1
movn v0,v1,a0
or v1,v0,zero
sw v0,0x38(s8)
lw v0,-0x70e4(gp)
lw v0,0x0(v0)
beq v0,zero,0x000ddfc8
_lw v0,-0x7bf8(gp)
ori v0,v1,0x10
sw v0,0x38(s8)
lw v0,-0x7bf8(gp)
lw v0,0x0(v0)
beq v0,zero,0x000ddfe4
_andi v0,s4,0x210
lw v0,0x38(s8)
ori v0,v0,0x20
sw v0,0x38(s8)
andi v0,s4,0x210
sw v0,0x28(s8)
sra v0,s4,0x2
andi v0,v0,0x4
andi a0,s4,0x100
sw a0,0x1c(s8)
ori v1,v0,0x8
movz v1,v0,a0
sw v1,0x20(s8)
or s2,zero,zero
lw v0,-0x6990(gp)
addiu v0,v0,-0x3104
sw v0,0x3c(s8)
lw v0,-0x6990(gp)
addiu v0,v0,-0x29e8
sw v0,0x24(s8)
lw v0,-0x6990(gp)
sw v0,0x30(s8)
lw s6,-0x7cf8(gp)
lw s7,-0x7cfc(gp)
lw v0,0x0(s6)
bne v0,zero,0x000de7e4
_li v0,0x1
lw v0,0x0(s7)
bne v0,zero,0x000de7ec
_li a0,0x2
lw t9,-0x6964(gp)
jalr t9
_nop
lw gp,0x10(s8)
bne v0,zero,0x000de7f8
_lw a0,0x50(s8)
lw t9,-0x6214(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de200
_or s1,v0,zero
lw v0,0x0(v0)
lw v1,0x4(s1)
or v0,v0,v1
beq v0,zero,0x000de030
_lw t9,-0x6060(gp)
jalr t9
_nop
lw gp,0x10(s8)
sltiu v0,v0,0x2
bne v0,zero,0x000de0c8
_or a2,s4,zero
addiu a1,s1,0x13
or a0,s3,zero
lw v0,0x30(s8)
addiu t9,v0,-0x2dc4
bal 0x000dd23c
_nop
lw gp,0x10(s8)
bne v0,zero,0x000de028
_nop
addiu s1,s1,0x13
or a2,s4,zero
or a1,s1,zero
or a0,s3,zero
lw t9,0x3c(s8)
jalr t9
_nop
lw gp,0x10(s8)
bne v0,zero,0x000de028
_andi v0,s4,0x18
beq v0,zero,0x000de13c
_andi v0,s4,0x10
lw a2,0x20(s8)
or a1,s1,zero
lw a0,0x54(s8)
lw t9,-0x7a4c(gp)
bal 0x000e7290
_nop
lw gp,0x10(s8)
sw v0,0x34(s8)
or a1,s4,zero
or a0,v0,zero
lw t9,0x24(s8)
jalr t9
_nop
lw gp,0x10(s8)
bltz v0,0x000de448
_sw v0,0x2c(s8)
andi v0,s4,0x10
beq v0,zero,0x000de64c
_andi v0,s4,0x8
lw v0,0x2c(s8)
beq v0,zero,0x000de480
_li a2,-0x201
li v0,-0x2
lw v1,0x2c(s8)
bne v1,v0,0x000de17c
_or a1,zero,zero
lw a0,0x34(s8)
lw t9,0x24(s8)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de5cc
_lw a0,0x34(s8)
li a0,0x8
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s1,v0,zero
movz s2,v0,s2
lw a0,0x34(s8)
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu s6,v0,0x1
or a0,s6,zero
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq s1,zero,0x000de5e4
_nop
bne v0,zero,0x000de604
_or a0,s1,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
lw a0,0x34(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
sw v0,0x4c(s8)
lw a0,0x50(s8)
lw t9,-0x6284(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x210
lw v1,0x28(s8)
bne v1,v0,0x000ddf00
_lw a0,0x54(s8)
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu s4,v0,0x1
or a0,s4,zero
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s3,v0,zero
li a0,0x8
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de828
_or s1,v0,zero
beq s3,zero,0x000de810
_or a0,v0,zero
sw s3,0x4(v0)
sw s0,0x0(v0)
lw v0,0x1c(s8)
beq v0,zero,0x000de848
_or a2,s4,zero
sb zero,0x0(s3)
addiu s5,s5,0x1
b 0x000ddf00
_or s0,s1,zero
or a1,zero,zero
lw t9,-0x6990(gp)
addiu t9,t9,-0x29e8
bal 0x000dd618
_nop
lw gp,0x10(s8)
bltz v0,0x000de3c4
_lw a0,0x54(s8)
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s4,v0,zero
addu a0,s1,v0
addiu a0,a0,0x2
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s2,v0,zero
addiu a0,s1,0x1
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq s2,zero,0x000de3ec
_or s1,v0,zero
beq v0,zero,0x000de3cc
_or a1,s3,zero
or a0,v0,zero
lw t9,-0x6074(gp)
jalr t9
_nop
lw gp,0x10(s8)
or a0,s1,zero
lw t9,-0x6990(gp)
addiu t9,t9,-0x2534
bal 0x000ddacc
_nop
lw gp,0x10(s8)
lw a1,0x54(s8)
or a0,s2,zero
lw t9,-0x6074(gp)
jalr t9
_nop
lw gp,0x10(s8)
addu v0,s2,s4
li v1,0x2f
sb v1,0x0(v0)
addiu a0,s4,0x1
or a1,s1,zero
addu a0,s2,a0
lw t9,-0x6074(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu a2,s8,0x58
or a1,s2,zero
li a0,0x3
lw t9,-0x6278(gp)
jalr t9
_nop
lw gp,0x10(s8)
bltz v0,0x000de410
_or a0,s2,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu sp,sp,-0x8
addiu s0,sp,0x10
sw zero,0x0(s0)
sw s1,0x4(s0)
b 0x000ddefc
_li s5,0x1
b 0x000de910
_lw s1,-0x7174(gp)
or a0,s2,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
b 0x000ddefc
_sw v0,0x4c(s8)
beq v0,zero,0x000de43c
_or a0,v0,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
b 0x000ddefc
_sw v0,0x4c(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
or a0,s1,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000ddf00
_or s2,zero,zero
li v0,0x1
b 0x000ddefc
_sw v0,0x4c(s8)
andi v0,s4,0x8
bne v0,zero,0x000de464
_andi v0,s4,0x10
bne v0,zero,0x000de154
_li v0,-0x2
b 0x000de658
_or a0,s1,zero
lw a0,0x34(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de02c
_lw s6,-0x7cf8(gp)
and a2,s4,a2
lw a1,0x34(s8)
or a0,s3,zero
lw t9,-0x6960(gp)
bal 0x000dde2c
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de17c
_sw v0,0x18(s8)
lw v0,0x0(v0)
beq v0,zero,0x000de544
_lw v0,0x2c(s8)
sw v0,0x40(s8)
lw s6,0x18(s8)
sw zero,0x48(s8)
or s7,zero,zero
li a0,0x8
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de56c
_or s1,v0,zero
movz s7,v0,s7
lw v0,0x48(s8)
sw v0,0x0(s1)
lw v0,0x0(s6)
sw v0,0x4(s1)
lw v0,0x40(s8)
addiu v0,v0,0x1
sw v0,0x40(s8)
addiu s6,s6,0x4
sw s1,0x48(s8)
lw v0,0x0(s6)
bne v0,zero,0x000de4c4
_li a0,0x8
lw a0,0x18(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
lw v0,0x40(s8)
beq v0,zero,0x000de180
_li a0,0x8
movz s2,s7,s2
sw s0,0x0(s7)
addu s5,s5,v0
b 0x000de180
_or s0,s1,zero
lw v0,-0x7174(gp)
lw v1,0x18(s8)
beq v1,v0,0x000de17c
_or a0,v1,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de180
_li a0,0x8
lw v0,0x48(s8)
beq v0,zero,0x000de59c
_lw a0,0x18(s8)
lw a0,0x48(s8)
lw s1,0x0(a0)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
bne s1,zero,0x000de578
_sw s1,0x48(s8)
lw a0,0x18(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
lw a0,0x34(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de02c
_lw s6,-0x7cf8(gp)
beq v0,zero,0x000de1e4
_or a0,v0,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de1e8
_lw a0,0x34(s8)
sw s0,0x0(s1)
sw v0,0x4(s1)
or a2,s6,zero
lw s0,0x34(s8)
or a1,s0,zero
or a0,v0,zero
lw t9,-0x5f88(gp)
jalr t9
_nop
lw gp,0x10(s8)
or a0,s0,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu s5,s5,0x1
b 0x000de028
_or s0,s1,zero
bne v0,zero,0x000de73c
_lw a0,0x34(s8)
or a0,s1,zero
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
or a1,v0,zero
or a0,s1,zero
lw t9,-0x6f2c(gp)
bal 0x000eda58
_nop
lw gp,0x10(s8)
lw a2,0x38(s8)
or a1,v0,zero
or a0,s3,zero
lw t9,-0x7728(gp)
bal 0x000df6b0
_nop
lw gp,0x10(s8)
li v1,0x1
beq v0,v1,0x000de028
_lui v0,0x1
ori v0,v0,0x86a0
lw v1,0x44(s8)
slt v0,v1,v0
beq v0,zero,0x000de754
_addiu v0,v1,0x8
addiu sp,sp,-0x8
addiu s6,sp,0x10
sw v0,0x44(s8)
or a0,s1,zero
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu a0,v0,0x1
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s7,v0,zero
beq s7,zero,0x000de7c4
_or a0,s1,zero
sw s0,0x0(s6)
sw s7,0x4(s6)
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu a2,v0,0x1
or a1,s1,zero
or a0,s7,zero
lw t9,-0x5f88(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu s5,s5,0x1
b 0x000de028
_or s0,s6,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de658
_or a0,s1,zero
li a0,0x8
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s6,v0,zero
movz s2,v0,s2
or a0,s1,zero
lw t9,-0x60fc(gp)
jalr t9
_nop
lw gp,0x10(s8)
addiu a0,v0,0x1
lw t9,-0x60a4(gp)
jalr t9
_nop
lw gp,0x10(s8)
bne s6,zero,0x000de6f4
_or s7,v0,zero
beq v0,zero,0x000de804
_or a0,v0,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
or a0,s6,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
b 0x000de200
_sw v0,0x4c(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
li v0,0x1
b 0x000de200
_sw v0,0x4c(s8)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000ddf10
_or s1,s0,zero
beq s3,zero,0x000ddf0c
_or a0,s3,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000ddf10
_or s1,s0,zero
lw a1,0x54(s8)
or a0,s3,zero
lw t9,-0x5fac(gp)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de290
_addiu s5,s5,0x1
addiu s3,s5,0x1
sll s3,s3,0x2
or a0,s3,zero
jalr t9
_nop
lw gp,0x10(s8)
beq v0,zero,0x000de8cc
_or s1,v0,zero
beq s5,zero,0x000de8b0
_nop
addiu a1,s3,-0x4
addu a1,a1,v0
or v1,s0,zero
lw a0,0x4(v1)
sw a0,0x0(v0)
addiu v0,v0,0x4
bne a1,v0,0x000de89c
_lw v1,0x0(v1)
addu s3,s1,s3
beq s2,zero,0x000de910
_sw zero,-0x4(s3)
bne s0,zero,0x000de8f4
_or v0,s1,zero
b 0x000de914
_nop
b 0x000ddf10
_or s1,s0,zero
lw s3,0x0(s0)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
beq s3,zero,0x000de914
_or v0,s1,zero
or s0,s3,zero
bne s0,s2,0x000de8d4
_or a0,s0,zero
or a0,s2,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
or v0,s1,zero
lw a0,0xfc(s8)
lw v1,-0x5fb4(gp)
lw v1,0x0(v1)
bne a0,v1,0x000de9e8
_lw ra,0x124(s8)
or sp,s8,zero
lw s8,0x120(sp)
lw s7,0x11c(sp)
lw s6,0x118(sp)
lw s5,0x114(sp)
lw s4,0x110(sp)
lw s3,0x10c(sp)
lw s2,0x108(sp)
lw s1,0x104(sp)
lw s0,0x100(sp)
jr ra
_addiu sp,sp,0x128
b 0x000de910
_lw s1,-0x7174(gp)
b 0x000de910
_lw s1,-0x7174(gp)
lw a0,0x4(s1)
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
lw s0,0x0(s1)
or a0,s1,zero
lw t9,-0x5f94(gp)
jalr t9
_nop
lw gp,0x10(s8)
or s1,s0,zero
beq s1,zero,0x000de914
_or v0,s1,zero
beq s2,zero,0x000de9b8
_lw t9,-0x5f94(gp)
bne s1,s2,0x000de968
_nop
b 0x000de968
_or s2,zero,zero
lw a0,0x4(s1)
jalr t9
_nop
lw gp,0x10(s8)
b 0x000de998
_lw s1,0x0(s1)
lb v0,0x0(s3)
beq v0,zero,0x000ddf00
_or s2,zero,zero
li v0,0x1
b 0x000ddf3c
_sw v0,0x44(s8)
lw t9,-0x6004(gp)
jalr t9
_nop
(translation_unit "int * glob_vector(int *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}\n\n" (function_definition "int * glob_vector(int *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" primitive_type (pointer_declarator "* glob_vector(int *param_1,int *param_2,int *param_3)" * (function_declarator "glob_vector(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *__pattern;" primitive_type (pointer_declarator "*__pattern" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint unaff_s5;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *unaff_s7;" primitive_type (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_130 [8];" type_identifier (array_declarator "auStack_130 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_128 [8];" type_identifier (array_declarator "local_128 [8]" identifier [ number_literal ]) ;) (declaration "int local_120;" primitive_type identifier ;) (declaration "undefined1 *local_11c;" type_identifier (pointer_declarator "*local_11c" * identifier) ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int *local_f4;" primitive_type (pointer_declarator "*local_f4" * identifier) ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 auStack_d0 [164];" type_identifier (array_declarator "auStack_d0 [164]" identifier [ number_literal ]) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" identifier = identifier) ;) (expression_statement "local_2c = *(char **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_2c = *(char **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" if (parenthesized_expression "((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0'))" ( (binary_expression "(param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(unaff_s5 = 0, *(char *)param_1 == '\0')" ( (comma_expression "unaff_s5 = 0, *(char *)param_1 == '\0'" (assignment_expression "unaff_s5 = 0" identifier = number_literal) , (binary_expression "*(char *)param_1 == '\0'" (pointer_expression "*(char *)param_1" * (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" { (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = FUN_000dd618(param_2);" (assignment_expression "iVar3 = FUN_000dd618(param_2)" identifier = (call_expression "FUN_000dd618(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" identifier = identifier) ;) (if_statement "if (iVar3 < 0) goto LAB_000de914;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000de914;" goto statement_identifier ;)) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" identifier = identifier) ;) (expression_statement "unaff_s0 = &local_120;" (assignment_expression "unaff_s0 = &local_120" identifier = (pointer_expression "&local_120" & identifier)) ;) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "bVar1 = puVar4 == (undefined1 *)0x0;" (assignment_expression "bVar1 = puVar4 == (undefined1 *)0x0" identifier = (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      unaff_s0 = (int *)0x0;\n    }" { (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" else (compound_statement "{\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" { (expression_statement "local_11c = puVar4;" (assignment_expression "local_11c = puVar4" identifier = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) }))) (expression_statement "unaff_s5 = (uint)!bVar1;" (assignment_expression "unaff_s5 = (uint)!bVar1" identifier = (cast_expression "(uint)!bVar1" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar1" ! identifier))) ;) (expression_statement "puVar4 = auStack_130;" (assignment_expression "puVar4 = auStack_130" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) goto LAB_000ddefc;" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ddefc;" goto statement_identifier ;)) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" if (parenthesized_expression "(*(char *)param_1 != '\0')" ( (binary_expression "*(char *)param_1 != '\0'" (pointer_expression "*(char *)param_1" * (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" { (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" identifier = number_literal) ;) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" identifier = identifier) ;) (goto_statement "goto LAB_000ddf3c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;)) (expression_statement "puVar4 = puVar27;" (assignment_expression "puVar4 = puVar27" identifier = identifier) ;) (if_statement "if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" { (labeled_statement "LAB_000ddefc:\n    puVar27 = puVar4;" statement_identifier : (expression_statement "puVar27 = puVar4;" (assignment_expression "puVar27 = puVar4" identifier = identifier) ;)) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);" (assignment_expression "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18)" identifier = (call_expression "glob_pattern_p((char *)param_1,(int)piVar18)" identifier (argument_list "((char *)param_1,(int)piVar18)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }" { (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = FUN_000dd618(param_2);" (assignment_expression "iVar25 = FUN_000dd618(param_2)" identifier = (call_expression "FUN_000dd618(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" if (parenthesized_expression "(-1 < iVar25)" ( (binary_expression "-1 < iVar25" number_literal < identifier) )) (compound_statement "{\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" { (expression_statement "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR_strlen_00158444)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)((int)param_3 + iVar3 + 2))" ( (cast_expression "(undefined1 *)((int)param_3 + iVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + iVar3 + 2)" ( (binary_expression "(int)param_3 + iVar3 + 2" (binary_expression "(int)param_3 + iVar3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar3 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\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        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar1 = true;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" else (compound_statement "{\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) }) (else_clause "else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" else (if_statement "if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }" { (expression_statement "piVar18 = param_1;" (assignment_expression "piVar18 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" else (compound_statement "{\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" { (expression_statement "(*(code *)PTR_strcpy_001584cc)(iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)(iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "FUN_000ddacc(iVar3);" (call_expression "FUN_000ddacc(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2);" (call_expression "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;" (assignment_expression "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f" (pointer_expression "*(undefined1 *)((int)piVar7 + (int)param_3)" * (cast_expression "(undefined1 *)((int)piVar7 + (int)param_3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + (int)param_3)" ( (binary_expression "(int)piVar7 + (int)param_3" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" ( (cast_expression "(undefined1 *)((int)piVar7 + (int)((int)param_3 + 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + (int)((int)param_3 + 1))" ( (binary_expression "(int)piVar7 + (int)((int)param_3 + 1)" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)param_3 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_3 + 1)" ( (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) , identifier ))) ;) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) (expression_statement "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);" (assignment_expression "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" identifier = (call_expression "(*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" (parenthesized_expression "(*(code *)PTR___lxstat64_001582c8)" ( (pointer_expression "*(code *)PTR___lxstat64_001582c8" * (cast_expression "(code *)PTR___lxstat64_001582c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,piVar7,auStack_d0)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" if (parenthesized_expression "(iVar25 < 0)" ( (binary_expression "iVar25 < 0" identifier < number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s0 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s0 = (int *)(puVar27 + 8)" identifier = (cast_expression "(int *)(puVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ;) (expression_statement "*unaff_s0 = 0;" (assignment_expression "*unaff_s0 = 0" (pointer_expression "*unaff_s0" * identifier) = number_literal) ;) (expression_statement "*(int *)(puVar27 + 0xc) = iVar3;" (assignment_expression "*(int *)(puVar27 + 0xc) = iVar3" (pointer_expression "*(int *)(puVar27 + 0xc)" * (cast_expression "(int *)(puVar27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0xc)" ( (binary_expression "puVar27 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = puVar27 + -8;" (assignment_expression "puVar4 = puVar27 + -8" identifier = (binary_expression "puVar27 + -8" identifier + number_literal)) ;) }))))) (goto_statement "goto LAB_000ddefc;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_opendir_001582b8)();" (assignment_expression "iVar3 = (*(code *)PTR_opendir_001582b8)()" identifier = (call_expression "(*(code *)PTR_opendir_001582b8)()" (parenthesized_expression "(*(code *)PTR_opendir_001582b8)" ( (pointer_expression "*(code *)PTR_opendir_001582b8" * (cast_expression "(code *)PTR_opendir_001582b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" { (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (if_statement "if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }" if (parenthesized_expression "(*(int *)PTR_noglob_dot_filenames_00157468 != 0)" ( (binary_expression "*(int *)PTR_noglob_dot_filenames_00157468 != 0" (pointer_expression "*(int *)PTR_noglob_dot_filenames_00157468" * (cast_expression "(int *)PTR_noglob_dot_filenames_00157468" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = 5;\n      }" { (expression_statement "local_f0 = 5;" (assignment_expression "local_f0 = 5" identifier = number_literal) ;) })) (if_statement "if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }" if (parenthesized_expression "(*(int *)PTR_glob_ignore_case_0015745c != 0)" ( (binary_expression "*(int *)PTR_glob_ignore_case_0015745c != 0" (pointer_expression "*(int *)PTR_glob_ignore_case_0015745c" * (cast_expression "(int *)PTR_glob_ignore_case_0015745c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = local_f0 | 0x10;\n      }" { (expression_statement "local_f0 = local_f0 | 0x10;" (assignment_expression "local_f0 = local_f0 | 0x10" identifier = (binary_expression "local_f0 | 0x10" identifier | number_literal)) ;) })) (if_statement "if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }" if (parenthesized_expression "(*(int *)PTR_extended_glob_00156948 != 0)" ( (binary_expression "*(int *)PTR_extended_glob_00156948 != 0" (pointer_expression "*(int *)PTR_extended_glob_00156948" * (cast_expression "(int *)PTR_extended_glob_00156948" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = local_f0 | 0x20;\n      }" { (expression_statement "local_f0 = local_f0 | 0x20;" (assignment_expression "local_f0 = local_f0 | 0x20" identifier = (binary_expression "local_f0 | 0x20" identifier | number_literal)) ;) })) (expression_statement "uVar13 = (int)param_3 >> 2 & 4;" (assignment_expression "uVar13 = (int)param_3 >> 2 & 4" identifier = (binary_expression "(int)param_3 >> 2 & 4" (binary_expression "(int)param_3 >> 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar22 = (uint)param_3 & 0x100;" (assignment_expression "uVar22 = (uint)param_3 & 0x100" identifier = (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar21 = uVar13 | 8;" (assignment_expression "uVar21 = uVar13 | 8" identifier = (binary_expression "uVar13 | 8" identifier | number_literal)) ;) (if_statement "if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar21 = uVar13;\n      }" { (expression_statement "uVar21 = uVar13;" (assignment_expression "uVar21 = uVar13" identifier = identifier) ;) })) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);" (assignment_expression "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x3104)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x3104)" ( (binary_expression "PTR_LAB_00157bb0 + -0x3104" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x29e8)" ( (binary_expression "PTR_LAB_00157bb0 + -0x29e8" identifier + number_literal) )))) ;) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" statement_identifier : (do_statement "do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" do (compound_statement "{\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      }" { (expression_statement "unaff_s7 = piVar9;" (assignment_expression "unaff_s7 = piVar9" identifier = identifier) ;) (if_statement "if (*unaff_s6 != 0) goto LAB_000de7e4;" if (parenthesized_expression "(*unaff_s6 != 0)" ( (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" * identifier) != number_literal) )) (goto_statement "goto LAB_000de7e4;" goto statement_identifier ;)) (if_statement "if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" if (parenthesized_expression "(*unaff_s7 != 0)" ( (binary_expression "*unaff_s7 != 0" (pointer_expression "*unaff_s7" * identifier) != number_literal) )) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);" (assignment_expression "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2)" identifier = (call_expression "(*(code *)PTR_signal_is_pending_00157bdc)(2)" (parenthesized_expression "(*(code *)PTR_signal_is_pending_00157bdc)" ( (pointer_expression "*(code *)PTR_signal_is_pending_00157bdc" * (cast_expression "(code *)PTR_signal_is_pending_00157bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_0015832c)(iVar3)" (parenthesized_expression "(*(code *)PTR_readdir64_0015832c)" ( (pointer_expression "*(code *)PTR_readdir64_0015832c" * (cast_expression "(code *)PTR_readdir64_0015832c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))))) ;) (if_statement "if (piVar10 == (int *)0x0) goto LAB_000de200;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000de200;" goto statement_identifier ;)) (expression_statement "piVar9 = unaff_s7;" (assignment_expression "piVar9 = unaff_s7" identifier = identifier) ;) (if_statement "if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" if (parenthesized_expression "(*piVar10 != 0 || piVar10[1] != 0)" ( (binary_expression "*piVar10 != 0 || piVar10[1] != 0" (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) || (binary_expression "piVar10[1] != 0" (subscript_expression "piVar10[1]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" { (expression_statement "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();" (assignment_expression "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_001584e0" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_001584e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" { (expression_statement "piVar18 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar18 = (int *)((int)piVar10 + 0x13)" identifier = (cast_expression "(int *)((int)piVar10 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar25 = FUN_000dd23c(param_1,piVar18,param_3);" (assignment_expression "iVar25 = FUN_000dd23c(param_1,piVar18,param_3)" identifier = (call_expression "FUN_000dd23c(param_1,piVar18,param_3)" identifier (argument_list "(param_1,piVar18,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 != 0) goto LAB_000de030;" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000de030;" goto statement_identifier ;)) })) (expression_statement "piVar10 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar10 = (int *)((int)piVar10 + 0x13)" identifier = (cast_expression "(int *)((int)piVar10 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (expression_statement "iVar25 = (*pcVar28)(param_1,piVar10,param_3);" (assignment_expression "iVar25 = (*pcVar28)(param_1,piVar10,param_3)" identifier = (call_expression "(*pcVar28)(param_1,piVar10,param_3)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(param_1,piVar10,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" { (if_statement "if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" if (parenthesized_expression "(((uint)param_3 & 0x18) == 0)" ( (binary_expression "((uint)param_3 & 0x18) == 0" (parenthesized_expression "((uint)param_3 & 0x18)" ( (binary_expression "(uint)param_3 & 0x18" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }" { (labeled_statement "LAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" statement_identifier : (if_statement "if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" if (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" ( (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" ( (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" { (if_statement "if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" if (parenthesized_expression "(local_fc == 0)" ( (binary_expression "local_fc == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }" { (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" identifier = identifier) ;) (expression_statement "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);" (assignment_expression "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" identifier = (cast_expression "(int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" identifier (argument_list "(param_1,local_f4,(uint)param_3 & 0xfffffdff)" ( identifier , identifier , (binary_expression "(uint)param_3 & 0xfffffdff" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" { (if_statement "if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" if (parenthesized_expression "(*piVar9 == 0)" ( (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }" { (if_statement "if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" if (parenthesized_expression "(piVar9 != (int *)PTR_glob_error_return_001573cc)" ( (binary_expression "piVar9 != (int *)PTR_glob_error_return_001573cc" identifier != (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) })) }) (else_clause "else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" else (compound_statement "{\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" { (expression_statement "local_e8 = local_fc;" (assignment_expression "local_e8 = local_fc" identifier = identifier) ;) (expression_statement "local_e0 = (int *)0x0;" (assignment_expression "local_e0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = piVar9;" (assignment_expression "unaff_s6 = piVar9" identifier = identifier) ;) (do_statement "do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);" do (compound_statement "{\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      }" { (expression_statement "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (piVar10 == (int *)0x0) goto joined_r0x000de570;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x000de570;" goto statement_identifier ;)) (if_statement "if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          unaff_s7 = piVar10;\n                        }" { (expression_statement "unaff_s7 = piVar10;" (assignment_expression "unaff_s7 = piVar10" identifier = identifier) ;) })) (expression_statement "*piVar10 = (int)local_e0;" (assignment_expression "*piVar10 = (int)local_e0" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar10[1] = *unaff_s6;" (assignment_expression "piVar10[1] = *unaff_s6" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = (pointer_expression "*unaff_s6" * identifier)) ;) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = unaff_s6 + 1;" (assignment_expression "unaff_s6 = unaff_s6 + 1" identifier = (binary_expression "unaff_s6 + 1" identifier + number_literal)) ;) (expression_statement "local_e0 = piVar10;" (assignment_expression "local_e0 = piVar10" identifier = identifier) ;) }) while (parenthesized_expression "(*unaff_s6 != 0)" ( (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" * identifier) != number_literal) )) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (if_statement "if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" if (parenthesized_expression "(local_e8 != 0)" ( (binary_expression "local_e8 != 0" identifier != number_literal) )) (compound_statement "{\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" { (if_statement "if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          unaff_s2 = unaff_s7;\n                        }" { (expression_statement "unaff_s2 = unaff_s7;" (assignment_expression "unaff_s2 = unaff_s7" identifier = identifier) ;) })) (expression_statement "*unaff_s7 = (int)piVar7;" (assignment_expression "*unaff_s7 = (int)piVar7" (pointer_expression "*unaff_s7" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s5 = unaff_s5 + local_e8;" (assignment_expression "unaff_s5 = unaff_s5 + local_e8" identifier = (binary_expression "unaff_s5 + local_e8" identifier + identifier)) ;) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) })) }))) })) }) (else_clause "else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" else (compound_statement "{\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" { (labeled_statement "LAB_000de154:\n                  piVar18 = (int *)0x0;" statement_identifier : (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" if (parenthesized_expression "((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0))" ( (binary_expression "(local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" (parenthesized_expression "(local_fc == -2)" ( (binary_expression "local_fc == -2" identifier == number_literal) )) && (parenthesized_expression "(iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" ( (comma_expression "iVar25 = (*pcVar5)(local_f4), iVar25 == 0" (assignment_expression "iVar25 = (*pcVar5)(local_f4)" identifier = (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_f4)" ( identifier )))) , (binary_expression "iVar25 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) }))) (expression_statement "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  unaff_s2 = piVar9;\n                }" { (expression_statement "unaff_s2 = piVar9;" (assignment_expression "unaff_s2 = piVar9" identifier = identifier) ;) })) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(local_f4)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier )))) ;) (expression_statement "unaff_s6 = (int *)(iVar25 + 1);" (assignment_expression "unaff_s6 = (int *)(iVar25 + 1)" identifier = (cast_expression "(int *)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);" (assignment_expression "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (if_statement "if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }" { (if_statement "if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(iVar25);" (call_expression "(*(code *)PTR_free_001585ac)(iVar25)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25)" ( identifier ))) ;) })) }) (else_clause "else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" else (compound_statement "{\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" { (if_statement "if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" { (expression_statement "*piVar9 = (int)piVar7;" (assignment_expression "*piVar9 = (int)piVar7" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9[1] = iVar25;" (assignment_expression "piVar9[1] = iVar25" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);" (call_expression "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25,local_f4,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar7 = piVar9;" (assignment_expression "piVar7 = piVar9" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) }))) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) }))) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" if (parenthesized_expression "(((uint)param_3 & 8) != 0)" ( (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" ( (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) })) }) (else_clause "else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" else (compound_statement "{\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" { (expression_statement "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);" (assignment_expression "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21)" identifier = (cast_expression "(int *)sh_makepath(param_2,piVar10,uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sh_makepath(param_2,piVar10,uVar21)" identifier (argument_list "(param_2,piVar10,uVar21)" ( identifier , identifier , identifier ))))) ;) (expression_statement "piVar18 = param_3;" (assignment_expression "piVar18 = param_3" identifier = identifier) ;) (expression_statement "local_fc = (*pcVar5)(local_f4);" (assignment_expression "local_fc = (*pcVar5)(local_f4)" identifier = (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_f4)" ( identifier )))) ;) (if_statement "if (-1 < local_fc) goto LAB_000de13c;" if (parenthesized_expression "(-1 < local_fc)" ( (binary_expression "-1 < local_fc" number_literal < identifier) )) (goto_statement "goto LAB_000de13c;" goto statement_identifier ;)) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" if (parenthesized_expression "(((uint)param_3 & 8) != 0)" ( (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" ( (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) (if_statement "if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;" if (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" ( (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" ( (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000de154;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "piVar18 = (int *)fnx_fromfs(piVar10,uVar6);" (assignment_expression "piVar18 = (int *)fnx_fromfs(piVar10,uVar6)" identifier = (cast_expression "(int *)fnx_fromfs(piVar10,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "fnx_fromfs(piVar10,uVar6)" identifier (argument_list "(piVar10,uVar6)" ( identifier , identifier ))))) ;) (expression_statement "iVar25 = strmatch(param_1,piVar18,local_f0);" (assignment_expression "iVar25 = strmatch(param_1,piVar18,local_f0)" identifier = (call_expression "strmatch(param_1,piVar18,local_f0)" identifier (argument_list "(param_1,piVar18,local_f0)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" if (parenthesized_expression "(iVar25 != 1)" ( (binary_expression "iVar25 != 1" identifier != number_literal) )) (compound_statement "{\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" { (if_statement "if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" if (parenthesized_expression "(local_e4 < 100000)" ( (binary_expression "local_e4 < 100000" identifier < number_literal) )) (compound_statement "{\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }" { (expression_statement "unaff_s6 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s6 = (int *)(puVar27 + 8)" identifier = (cast_expression "(int *)(puVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = puVar27 + -8;" (assignment_expression "puVar27 = puVar27 + -8" identifier = (binary_expression "puVar27 + -8" identifier + number_literal)) ;) (expression_statement "local_e4 = local_e4 + 8;" (assignment_expression "local_e4 = local_e4 + 8" identifier = (binary_expression "local_e4 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" else (compound_statement "{\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" { (expression_statement "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  unaff_s2 = unaff_s6;\n                }" { (expression_statement "unaff_s2 = unaff_s6;" (assignment_expression "unaff_s2 = unaff_s6" identifier = identifier) ;) })) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" if (parenthesized_expression "(unaff_s6 == (int *)0x0)" ( (binary_expression "unaff_s6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" { (if_statement "if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar1 = true;\n                  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" else (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s7);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) }))) (if_statement "if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s6);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "*unaff_s6 = (int)piVar7;" (assignment_expression "*unaff_s6 = (int)piVar7" (pointer_expression "*unaff_s6" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s6[1] = (int)unaff_s7;" (assignment_expression "unaff_s6[1] = (int)unaff_s7" (subscript_expression "unaff_s6[1]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);" (call_expression "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,piVar10,iVar25 + 1)" ( identifier , identifier , (binary_expression "iVar25 + 1" identifier + number_literal) ))) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (expression_statement "piVar7 = unaff_s6;" (assignment_expression "piVar7 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) }))) (goto_statement "goto LAB_000de914;" goto statement_identifier ;) (labeled_statement "LAB_000de7e4:\n  bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) (labeled_statement "LAB_000df004:\n  puVar23 = puVar23 + 1;" statement_identifier : (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar19 = (char *)*puVar23;" (assignment_expression "pcVar19 = (char *)*puVar23" identifier = (cast_expression "(char *)*puVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) ;) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" identifier = (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" { (labeled_statement "LAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" statement_identifier : (if_statement "if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" if (parenthesized_expression "(*piVar9 != 0)" ( (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" * identifier) != number_literal) )) (compound_statement "{\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);" do (compound_statement "{\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*piVar9 != 0)" ( (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" * identifier) != number_literal) )) ;) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" * (cast_expression "(undefined4 *)(puVar27 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (return_statement "return piVar7;" return identifier ;) })) (goto_statement "goto LAB_000df010;" goto statement_identifier ;) (labeled_statement "joined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" statement_identifier : (while_statement "while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" while (parenthesized_expression "(local_e0 != (int *)0x0)" ( (binary_expression "local_e0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" { (expression_statement "local_e0 = (int *)*local_e0;" (assignment_expression "local_e0 = (int *)*local_e0" identifier = (cast_expression "(int *)*local_e0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_e0" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);" statement_identifier : (expression_statement "(*(code *)PTR_closedir_001582bc)(iVar3);" (call_expression "(*(code *)PTR_closedir_001582bc)(iVar3)" (parenthesized_expression "(*(code *)PTR_closedir_001582bc)" ( (pointer_expression "*(code *)PTR_closedir_001582bc" * (cast_expression "(code *)PTR_closedir_001582bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) (if_statement "if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" if (parenthesized_expression "(((uint)param_3 & 0x210) == 0x210)" ( (binary_expression "((uint)param_3 & 0x210) == 0x210" (parenthesized_expression "((uint)param_3 & 0x210)" ( (binary_expression "(uint)param_3 & 0x210" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_3 = (int *)(iVar3 + 1);" (assignment_expression "param_3 = (int *)(iVar3 + 1)" identifier = (cast_expression "(int *)(iVar3 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);" (assignment_expression "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(param_3)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" if (parenthesized_expression "(unaff_s0 == (int *)0x0)" ( (binary_expression "unaff_s0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }" { (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) (if_statement "if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" { (expression_statement "(*(code *)PTR_free_001585ac)(param_1);" (call_expression "(*(code *)PTR_free_001585ac)(param_1)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) }) (else_clause "else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" else (compound_statement "{\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" { (if_statement "if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" { (expression_statement "unaff_s0[1] = (int)param_1;" (assignment_expression "unaff_s0[1] = (int)param_1" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) = (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*unaff_s0 = (int)piVar7;" (assignment_expression "*unaff_s0 = (int)piVar7" (pointer_expression "*unaff_s0" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }" { (expression_statement "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);" (call_expression "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_memcpy_00158594)" ( (pointer_expression "*(code *)PTR_memcpy_00158594" * (cast_expression "(code *)PTR_memcpy_00158594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" else (compound_statement "{\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" { (expression_statement "*(undefined1 *)param_1 = 0;" (assignment_expression "*(undefined1 *)param_1 = 0" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_2 = piVar18;" (assignment_expression "param_2 = piVar18" identifier = identifier) ;) }))) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = param_2;" (assignment_expression "piVar18 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s0);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_000ddf10:\n    piVar7 = unaff_s0;" statement_identifier : (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;)) (if_statement "if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" if (parenthesized_expression "(unaff_s0 == (int *)0x0)" ( (binary_expression "unaff_s0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar7 = (int *)0x0;\n    }" { (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" else (compound_statement "{\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" { (do_statement "do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);" do (compound_statement "{\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      }" { (if_statement "if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar7 = (int *)*piVar7;" (assignment_expression "piVar7 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) }) (else_clause "else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" else (compound_statement "{\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" { (if_statement "if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }" if (parenthesized_expression "(piVar7 == unaff_s2)" ( (binary_expression "piVar7 == unaff_s2" identifier == identifier) )) (compound_statement "{\n            unaff_s2 = (int *)0x0;\n          }" { (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "unaff_s0 = (int *)*piVar7;" (assignment_expression "unaff_s0 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;) }))) }) while (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)) )) ;) }))) }) (else_clause "else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" else (compound_statement "{\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" { (labeled_statement "LAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;" statement_identifier : (if_statement "if (bVar1) goto LAB_000ddf10;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;))) (expression_statement "param_1 = (int *)((unaff_s5 + 1) * 4);" (assignment_expression "param_1 = (int *)((unaff_s5 + 1) * 4)" identifier = (cast_expression "(int *)((unaff_s5 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((unaff_s5 + 1) * 4)" ( (binary_expression "(unaff_s5 + 1) * 4" (parenthesized_expression "(unaff_s5 + 1)" ( (binary_expression "unaff_s5 + 1" identifier + number_literal) )) * number_literal) )))) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(param_1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000ddf10;" 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)) )) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;)) (if_statement "if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" if (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" { (expression_statement "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);" (assignment_expression "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7)" identifier = (cast_expression "(int *)((int)(param_1 + -1) + (int)piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(param_1 + -1) + (int)piVar7)" ( (binary_expression "(int)(param_1 + -1) + (int)piVar7" (cast_expression "(int)(param_1 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) ))) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar9 = piVar7;" (assignment_expression "piVar9 = piVar7" identifier = identifier) ;) (expression_statement "piVar10 = unaff_s0;" (assignment_expression "piVar10 = unaff_s0" identifier = identifier) ;) (do_statement "do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);" do (compound_statement "{\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      }" { (expression_statement "*piVar9 = piVar10[1];" (assignment_expression "*piVar9 = piVar10[1]" (pointer_expression "*piVar9" * identifier) = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = (int *)*piVar10;" (assignment_expression "piVar10 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) }) while (parenthesized_expression "(piVar18 != piVar9)" ( (binary_expression "piVar18 != piVar9" identifier != identifier) )) ;) })) (expression_statement "param_1 = piVar7 + unaff_s5 + 1;" (assignment_expression "param_1 = piVar7 + unaff_s5 + 1" identifier = (binary_expression "piVar7 + unaff_s5 + 1" (binary_expression "piVar7 + unaff_s5" identifier + identifier) + number_literal)) ;) (expression_statement "param_1[-1] = 0;" (assignment_expression "param_1[-1] = 0" (subscript_expression "param_1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9 = unaff_s0;" (assignment_expression "piVar9 = unaff_s0" identifier = identifier) ;) (if_statement "if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" if (parenthesized_expression "(unaff_s2 != (int *)0x0)" ( (binary_expression "unaff_s2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" { (while_statement "while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" { (expression_statement "unaff_s0 = piVar9;" (assignment_expression "unaff_s0 = piVar9" identifier = identifier) ;) (if_statement "if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" if (parenthesized_expression "(piVar9 == unaff_s2)" ( (binary_expression "piVar9 == unaff_s2" identifier == identifier) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s2);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "param_1 = (int *)*piVar9;" (assignment_expression "param_1 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "piVar9 = param_1;" (assignment_expression "piVar9 = param_1" identifier = identifier) ;) })) })) }))) (labeled_statement "LAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" if (parenthesized_expression "(local_2c == *(char **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "local_2c == *(char **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return piVar7;\n  }" { (return_statement "return piVar7;" return identifier ;) }))) (expression_statement "pcVar28 = glob_filename;" (assignment_expression "pcVar28 = glob_filename" identifier = identifier) ;) (expression_statement "pcVar19 = local_2c;" (assignment_expression "pcVar19 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar27 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar27 + -4) = pcVar28" (pointer_expression "*(code **)(puVar27 + -4)" * (cast_expression "(code **)(puVar27 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -4)" ( (binary_expression "puVar27 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar27 + -8) = local_128;" (assignment_expression "*(undefined1 **)(puVar27 + -8) = local_128" (pointer_expression "*(undefined1 **)(puVar27 + -8)" * (cast_expression "(undefined1 **)(puVar27 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0xc) = unaff_s7;" (assignment_expression "*(int **)(puVar27 + -0xc) = unaff_s7" (pointer_expression "*(int **)(puVar27 + -0xc)" * (cast_expression "(int **)(puVar27 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x10) = unaff_s6;" (assignment_expression "*(int **)(puVar27 + -0x10) = unaff_s6" (pointer_expression "*(int **)(puVar27 + -0x10)" * (cast_expression "(int **)(puVar27 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar27 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(puVar27 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(puVar27 + -0x14)" * (cast_expression "(uint *)(puVar27 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x14)" ( (binary_expression "puVar27 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x18) = param_3;" (assignment_expression "*(int **)(puVar27 + -0x18) = param_3" (pointer_expression "*(int **)(puVar27 + -0x18)" * (cast_expression "(int **)(puVar27 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x18)" ( (binary_expression "puVar27 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x1c) = param_1;" (assignment_expression "*(int **)(puVar27 + -0x1c) = param_1" (pointer_expression "*(int **)(puVar27 + -0x1c)" * (cast_expression "(int **)(puVar27 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x1c)" ( (binary_expression "puVar27 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x20) = unaff_s2;" (assignment_expression "*(int **)(puVar27 + -0x20) = unaff_s2" (pointer_expression "*(int **)(puVar27 + -0x20)" * (cast_expression "(int **)(puVar27 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x20)" ( (binary_expression "puVar27 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x24) = piVar7;" (assignment_expression "*(int **)(puVar27 + -0x24) = piVar7" (pointer_expression "*(int **)(puVar27 + -0x24)" * (cast_expression "(int **)(puVar27 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x24)" ( (binary_expression "puVar27 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x28) = unaff_s0;" (assignment_expression "*(int **)(puVar27 + -0x28) = unaff_s0" (pointer_expression "*(int **)(puVar27 + -0x28)" * (cast_expression "(int **)(puVar27 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x28)" ( (binary_expression "puVar27 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;" (assignment_expression "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c" (pointer_expression "*(undefined **)(puVar27 + -0x50)" * (cast_expression "(undefined **)(puVar27 + -0x50)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) = (binary_expression "puVar24 + 0x7fb4c" identifier + number_literal)) ;) (expression_statement "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4)" identifier = (cast_expression "(int *)(**(code **)(puVar24 + 0x79aa8))(4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x79aa8))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x79aa8))" ( (pointer_expression "**(code **)(puVar24 + 0x79aa8)" * (pointer_expression "*(code **)(puVar24 + 0x79aa8)" * (cast_expression "(code **)(puVar24 + 0x79aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x79aa8)" ( (binary_expression "puVar24 + 0x79aa8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "iVar3 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\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    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" identifier = (call_expression "(**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" (parenthesized_expression "(**(code **)(iVar3 + -0x61d4))" ( (pointer_expression "**(code **)(iVar3 + -0x61d4)" * (pointer_expression "*(code **)(iVar3 + -0x61d4)" * (cast_expression "(code **)(iVar3 + -0x61d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x61d4)" ( (binary_expression "iVar3 + -0x61d4" identifier + number_literal) ))))) )) (argument_list "(pcVar19,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }" { (labeled_statement "LAB_000deb88:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" statement_identifier : (if_statement "if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" if (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" { (expression_statement "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" identifier = (cast_expression "(int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" ( (pointer_expression "**(code **)(iVar25 + -0x6098)" * (pointer_expression "*(code **)(iVar25 + -0x6098)" * (cast_expression "(code **)(iVar25 + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x6098)" ( (binary_expression "iVar25 + -0x6098" identifier + number_literal) ))))) )) (argument_list "(piVar7,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\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        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }" { (if_statement "if (iVar3 == 0) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);" statement_identifier : (expression_statement "(**(code **)(iVar26 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar26 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar26 + -0x5f94))" ( (pointer_expression "**(code **)(iVar26 + -0x5f94)" * (pointer_expression "*(code **)(iVar26 + -0x5f94)" * (cast_expression "(code **)(iVar26 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x5f94)" ( (binary_expression "iVar26 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;)) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000df634:\n      iVar17 = uVar21 + 1;" statement_identifier : (expression_statement "iVar17 = uVar21 + 1;" (assignment_expression "iVar17 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" statement_identifier : (expression_statement "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" (assignment_expression "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17)" identifier = (call_expression "(**(code **)(iVar26 + -0x60a4))(iVar17)" (parenthesized_expression "(**(code **)(iVar26 + -0x60a4))" ( (pointer_expression "**(code **)(iVar26 + -0x60a4)" * (pointer_expression "*(code **)(iVar26 + -0x60a4)" * (cast_expression "(code **)(iVar26 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x60a4)" ( (binary_expression "iVar26 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(iVar17)" ( identifier )))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*piVar7 = iVar26;" (assignment_expression "*piVar7 = iVar26" (pointer_expression "*piVar7" * identifier) = identifier) ;) (if_statement "if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);" (call_expression "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17)" (parenthesized_expression "(**(code **)(iVar25 + -0x5fac))" ( (pointer_expression "**(code **)(iVar25 + -0x5fac)" * (pointer_expression "*(code **)(iVar25 + -0x5fac)" * (cast_expression "(code **)(iVar25 + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5fac)" ( (binary_expression "iVar25 + -0x5fac" identifier + number_literal) ))))) )) (argument_list "(iVar26,__pattern,iVar17)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar7[1] = 0;\n          return piVar7;\n        }" { (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar7;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar7;" return identifier ;) })) (labeled_statement "LAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);" statement_identifier : (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" if (parenthesized_expression "((iVar3 == 0) || (__pattern == (char *)0x0))" ( (binary_expression "(iVar3 == 0) || (__pattern == (char *)0x0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (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        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" statement_identifier : (if_statement "if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" ( (pointer_expression "**(code **)(iVar25 + -0x7ce8)" * (pointer_expression "*(code **)(iVar25 + -0x7ce8)" * (cast_expression "(code **)(iVar25 + -0x7ce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ce8)" ( (binary_expression "iVar25 + -0x7ce8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" ( (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" * (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" * (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) })))) (if_statement "if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d20)" * (cast_expression "(code **)(iVar25 + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d20)" ( (binary_expression "iVar25 + -0x7d20" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" ( (pointer_expression "**(code **)(iVar25 + -0x7cf4)" * (pointer_expression "*(code **)(iVar25 + -0x7cf4)" * (cast_expression "(code **)(iVar25 + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf4)" ( (binary_expression "iVar25 + -0x7cf4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" identifier = (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))();" (call_expression "(**(code **)(iVar25 + -0x5f94))()" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe | 0x100" (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | number_literal)) ;) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" if (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" ( (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" else (if_statement "if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" if (parenthesized_expression "(*pcVar19 == '*')" ( (binary_expression "*pcVar19 == '*'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000df42c:\n      pcVar8 = __pattern;" statement_identifier : (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;)) (if_statement "if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" if (parenthesized_expression "((pcVar19[1] == '*') && (pcVar19[2] == '\0'))" ( (binary_expression "(pcVar19[1] == '*') && (pcVar19[2] == '\0')" (parenthesized_expression "(pcVar19[1] == '*')" ( (binary_expression "pcVar19[1] == '*'" (subscript_expression "pcVar19[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(pcVar19[2] == '\0')" ( (binary_expression "pcVar19[2] == '\0'" (subscript_expression "pcVar19[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" { (expression_statement "uVar13 = uVar22 | 0x210;" (assignment_expression "uVar13 = uVar22 | 0x210" identifier = (binary_expression "uVar22 | 0x210" identifier | number_literal)) ;) (if_statement "if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" { (if_statement "if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" if (parenthesized_expression "(((uint)piVar18 & 0x10) == 0)" ( (binary_expression "((uint)piVar18 & 0x10) == 0" (parenthesized_expression "((uint)piVar18 & 0x10)" ( (binary_expression "(uint)piVar18 & 0x10" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" { (expression_statement "uVar13 = uVar22 & 0xfffffdff | 0x10;" (assignment_expression "uVar13 = uVar22 & 0xfffffdff | 0x10" identifier = (binary_expression "uVar22 & 0xfffffdff | 0x10" (binary_expression "uVar22 & 0xfffffdff" identifier & number_literal) | number_literal)) ;) })) (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) }) (else_clause "else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" else (compound_statement "{\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" { (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) }))) }) (else_clause "else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" else (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) }))))) (labeled_statement "LAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" statement_identifier : (expression_statement "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13)" identifier = (cast_expression "(int *)glob_vector(pcVar19,pcVar8,uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(pcVar19,pcVar8,uVar13)" identifier (argument_list "(pcVar19,pcVar8,uVar13)" ( identifier , identifier , identifier ))))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\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 "{\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }" { (labeled_statement "LAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" statement_identifier : (if_statement "if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" if (parenthesized_expression "(piVar7 != *(int **)(iVar25 + -0x7174))" ( (binary_expression "piVar7 != *(int **)(iVar25 + -0x7174)" identifier != (pointer_expression "*(int **)(iVar25 + -0x7174)" * (cast_expression "(int **)(iVar25 + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" { (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" identifier = identifier) ;) (if_statement "if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" if (parenthesized_expression "((uVar13 & 0x10) != 0)" ( (binary_expression "(uVar13 & 0x10) != 0" (parenthesized_expression "(uVar13 & 0x10)" ( (binary_expression "uVar13 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" { (expression_statement "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);" (assignment_expression "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" identifier = (cast_expression "(int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000dd6dc(pcVar19,piVar7,piVar18)" identifier (argument_list "(pcVar19,piVar7,piVar18)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (iVar3 == 0) {\n          return piVar18;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar18;\n        }" { (return_statement "return piVar18;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (return_statement "return piVar18;" return identifier ;) }))) })) (if_statement "if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000df4b0;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" else (compound_statement "{\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" { (if_statement "if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" if (parenthesized_expression "(**(int **)(iVar25 + -0x7bf8) != 0)" ( (binary_expression "**(int **)(iVar25 + -0x7bf8) != 0" (pointer_expression "**(int **)(iVar25 + -0x7bf8)" * (pointer_expression "*(int **)(iVar25 + -0x7bf8)" * (cast_expression "(int **)(iVar25 + -0x7bf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bf8)" ( (binary_expression "iVar25 + -0x7bf8" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" { (expression_statement "iVar3 = glob_dirscan(pcVar19,0x2f);" (assignment_expression "iVar3 = glob_dirscan(pcVar19,0x2f)" identifier = (call_expression "glob_dirscan(pcVar19,0x2f)" identifier (argument_list "(pcVar19,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_000deb88;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000deb88;" goto statement_identifier ;)) })) (expression_statement "iVar17 = iVar3 - (int)pcVar19;" (assignment_expression "iVar17 = iVar3 - (int)pcVar19" identifier = (binary_expression "iVar3 - (int)pcVar19" identifier - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar21 = iVar17 + 1;" (assignment_expression "uVar21 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);" (assignment_expression "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" identifier = (cast_expression "(char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" (parenthesized_expression "(**(code **)(iVar25 + -0x60a4))" ( (pointer_expression "**(code **)(iVar25 + -0x60a4)" * (pointer_expression "*(code **)(iVar25 + -0x60a4)" * (cast_expression "(code **)(iVar25 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x60a4)" ( (binary_expression "iVar25 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(iVar17 + 2)" ( (binary_expression "iVar17 + 2" identifier + number_literal) ))))) ;) (if_statement "if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)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 **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }" { (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5fac" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern,pcVar19,uVar21)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "__pattern[uVar21] = '\0';" (assignment_expression "__pattern[uVar21] = '\0'" (subscript_expression "__pattern[uVar21]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar20 = (char *)(iVar3 + 1);" (assignment_expression "pcVar20 = (char *)(iVar3 + 1)" identifier = (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000deb94;" goto statement_identifier ;) })) (expression_statement "iVar25 = glob_pattern_p(__pattern,(int)pcVar19);" (assignment_expression "iVar25 = glob_pattern_p(__pattern,(int)pcVar19)" identifier = (call_expression "glob_pattern_p(__pattern,(int)pcVar19)" identifier (argument_list "(__pattern,(int)pcVar19)" ( identifier , (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (compound_statement "{\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" { (expression_statement "uVar13 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar13 = (uint)piVar18 & 0xfffffffe" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;" (assignment_expression "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400" (pointer_expression "*(uint *)(puVar27 + -0x44)" * (cast_expression "(uint *)(puVar27 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) )))) = (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" if (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" ( (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44)" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar27 + -0x44)" * (cast_expression "(undefined4 *)(puVar27 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" else (compound_statement "{\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" { (if_statement "if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" if (parenthesized_expression "(*__pattern == '*')" ( (binary_expression "*__pattern == '*'" (pointer_expression "*__pattern" * identifier) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }" { (if_statement "if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" if (parenthesized_expression "(__pattern[1] == '*')" ( (binary_expression "__pattern[1] == '*'" (subscript_expression "__pattern[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }" { (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;) (if_statement "if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" if (parenthesized_expression "((__pattern[2] == '/') || (__pattern[2] == '\0'))" ( (binary_expression "(__pattern[2] == '/') || (__pattern[2] == '\0')" (parenthesized_expression "(__pattern[2] == '/')" ( (binary_expression "__pattern[2] == '/'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(__pattern[2] == '\0')" ( (binary_expression "__pattern[2] == '\0'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }" { (do_statement "do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');" do (compound_statement "{\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              }" { (expression_statement "pcVar15 = pcVar8;" (assignment_expression "pcVar15 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar15;" (assignment_expression "pcVar8 = pcVar15" identifier = identifier) ;) (if_statement "if (pcVar15[1] != '*') break;" if (parenthesized_expression "(pcVar15[1] != '*')" ( (binary_expression "pcVar15[1] != '*'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar15[2] == '/')" ( (binary_expression "pcVar15[2] == '/'" (subscript_expression "pcVar15[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }" { (expression_statement "pcVar8 = pcVar15 + 3;" (assignment_expression "pcVar8 = pcVar15 + 3" identifier = (binary_expression "pcVar15 + 3" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar15[3];" (assignment_expression "cVar2 = pcVar15[3]" identifier = (subscript_expression "pcVar15[3]" identifier [ number_literal ])) ;) (while_statement "while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" while (parenthesized_expression "(cVar2 == '/')" ( (binary_expression "cVar2 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" { (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) })) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') break;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }) (else_clause "else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" else (if_statement "if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar15[2] != '\0')" ( (binary_expression "pcVar15[2] != '\0'" (subscript_expression "pcVar15[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" { (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (goto_statement "goto LAB_000dedb8;" goto statement_identifier ;) })))) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*pcVar8 == '*')" ( (binary_expression "*pcVar8 == '*'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'*'" ' character ')) )) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (labeled_statement "LAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;" statement_identifier : (expression_statement "*(int *)(puVar27 + -0x40) = (int)cVar2;" (assignment_expression "*(int *)(puVar27 + -0x40) = (int)cVar2" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) = (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);" (assignment_expression "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0)" (pointer_expression "*(uint *)(puVar27 + -0x48)" * (cast_expression "(uint *)(puVar27 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(cVar2 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar2 == 0)" ( (binary_expression "cVar2 == 0" identifier == number_literal) )))) ;) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "uVar13 = uVar13 | 0x210;" (assignment_expression "uVar13 = uVar13 | 0x210" identifier = (binary_expression "uVar13 | 0x210" identifier | number_literal)) ;) (if_statement "if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;" if (parenthesized_expression "(*(int *)(puVar27 + -0x40) == 0)" ( (binary_expression "*(int *)(puVar27 + -0x40) == 0" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) }) (else_clause "else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" else (compound_statement "{\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "uVar16 = uVar21;" (assignment_expression "uVar16 = uVar21" identifier = identifier) ;) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" identifier = identifier) ;) (if_statement "if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" if (parenthesized_expression "(3 < (int)uVar21)" ( (binary_expression "3 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" { (if_statement "if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;" if (parenthesized_expression "(((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*'))" ( (binary_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')" (parenthesized_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*'))" ( (binary_expression "(pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')" (parenthesized_expression "(pcVar19[uVar21 - 1] != '/')" ( (binary_expression "pcVar19[uVar21 - 1] != '/'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) != (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(pcVar19[uVar21 - 2] != '*')" ( (binary_expression "pcVar19[uVar21 - 2] != '*'" (subscript_expression "pcVar19[uVar21 - 2]" identifier [ (binary_expression "uVar21 - 2" identifier - number_literal) ]) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "(pcVar19[uVar21 - 3] != '*')" ( (binary_expression "pcVar19[uVar21 - 3] != '*'" (subscript_expression "pcVar19[uVar21 - 3]" identifier [ (binary_expression "uVar21 - 3" identifier - number_literal) ]) != (char_literal "'*'" ' character ')) ))) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar19 + (uVar21 - 6);" (assignment_expression "pcVar8 = pcVar19 + (uVar21 - 6)" identifier = (binary_expression "pcVar19 + (uVar21 - 6)" identifier + (parenthesized_expression "(uVar21 - 6)" ( (binary_expression "uVar21 - 6" identifier - number_literal) )))) ;) (while_statement "while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" while (parenthesized_expression "((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)))" ( (parenthesized_expression "(uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))" ( (comma_expression "uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar14 = uVar22" identifier = identifier) , (comma_expression "uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar22 = uVar14" identifier = identifier) , (binary_expression "pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (binary_expression "pcVar8[2] == '/'" (subscript_expression "pcVar8[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) && (parenthesized_expression "(uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" ( (comma_expression "uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar22 = uVar14 - 3" identifier = (binary_expression "uVar14 - 3" identifier - number_literal)) , (comma_expression "uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar16 = uVar14" identifier = identifier) , (binary_expression "3 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ))))) )) )) (compound_statement "{\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" { (if_statement "if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;" if (parenthesized_expression "((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'))" ( (binary_expression "(pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" (parenthesized_expression "(pcVar8[1] != '*')" ( (binary_expression "pcVar8[1] != '*'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) || (parenthesized_expression "(cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" ( (comma_expression "cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) , (comma_expression "pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "pcVar8 = pcVar8 + -3" identifier = (binary_expression "pcVar8 + -3" identifier + number_literal)) , (binary_expression "cVar2 != '*'" identifier != (char_literal "'*'" ' character ')))) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "bVar1 = uVar22 != uVar21;" (assignment_expression "bVar1 = uVar22 != uVar21" identifier = (binary_expression "uVar22 != uVar21" identifier != identifier)) ;) (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) (if_statement "if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }" if (parenthesized_expression "((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))))" ( (binary_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" (parenthesized_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*'))" ( (binary_expression "((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')" (parenthesized_expression "((bVar1) && (4 < uVar16))" ( (binary_expression "(bVar1) && (4 < uVar16)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(4 < uVar16)" ( (binary_expression "4 < uVar16" number_literal < identifier) ))) )) && (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" ( (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" ( (parenthesized_expression "(*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')" (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          uVar21 = uVar16 - 3;\n        }" { (expression_statement "uVar21 = uVar16 - 3;" (assignment_expression "uVar21 = uVar16 - 3" identifier = (binary_expression "uVar16 - 3" identifier - number_literal)) ;) })) }))) (labeled_statement "LAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" statement_identifier : (if_statement "if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" if (parenthesized_expression "(pcVar19[uVar21 - 1] == '/')" ( (binary_expression "pcVar19[uVar21 - 1] == '/'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        pcVar19[uVar21 - 1] = '\0';\n      }" { (expression_statement "pcVar19[uVar21 - 1] = '\0';" (assignment_expression "pcVar19[uVar21 - 1] = '\0'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "iVar17 = glob_filename(pcVar19,uVar13 | 0x800);" (assignment_expression "iVar17 = glob_filename(pcVar19,uVar13 | 0x800)" identifier = (call_expression "glob_filename(pcVar19,uVar13 | 0x800)" identifier (argument_list "(pcVar19,uVar13 | 0x800)" ( identifier , (binary_expression "uVar13 | 0x800" identifier | number_literal) )))) ;) (expression_statement "*(int *)(puVar27 + -0x30) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x30) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x30)" * (cast_expression "(int *)(puVar27 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" { (labeled_statement "LAB_000df274:\n        iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (expression_statement "__pattern = (char *)*piVar7;" (assignment_expression "__pattern = (char *)*piVar7" identifier = (cast_expression "(char *)*piVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) (while_statement "while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" while (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          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" { (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "__pattern = (char *)*piVar18;" (assignment_expression "__pattern = (char *)*piVar18" identifier = (cast_expression "(char *)*piVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) })) (goto_statement "goto LAB_000df2ac;" goto statement_identifier ;) })) (if_statement "if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" if (parenthesized_expression "(iVar17 == *(int *)(iVar25 + -0x7174))" ( (binary_expression "iVar17 == *(int *)(iVar25 + -0x7174)" identifier == (pointer_expression "*(int *)(iVar25 + -0x7174)" * (cast_expression "(int *)(iVar25 + -0x7174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return *(int **)(puVar27 + -0x30);" return (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ;) })) (expression_statement "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);" (assignment_expression "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30)" identifier = (cast_expression "(char *)**(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar27 + -0x30)" * (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 **)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);" return (pointer_expression "*(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" * (cast_expression "(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7174)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7174" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" if (parenthesized_expression "(*(int *)(puVar27 + -0x48) != 0)" ( (binary_expression "*(int *)(puVar27 + -0x48) != 0" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" { (if_statement "if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" if (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) )) (compound_statement "{\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" { (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000def94;" goto statement_identifier ;) })) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" if (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" * (cast_expression "(undefined4 *)(puVar27 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar27 + -0x48);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x48)" identifier = (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "__pattern = (char *)0x0;" (assignment_expression "__pattern = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000deb94;" goto statement_identifier ;) })) })) (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000def94:\n      iVar26 = 1;" statement_identifier : (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;)) (expression_statement "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;" (assignment_expression "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18" (pointer_expression "*(int *)(puVar27 + -0x2c)" * (cast_expression "(int *)(puVar27 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x2c)" ( (binary_expression "puVar27 + -0x2c" identifier + number_literal) )))) = (binary_expression "iVar17 + -0x5e18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);" (assignment_expression "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960)" (pointer_expression "*(undefined4 *)(puVar27 + -0x40)" * (cast_expression "(undefined4 *)(puVar27 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar25 + -0x6960)" * (cast_expression "(undefined4 *)(iVar25 + -0x6960)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x6960)" ( (binary_expression "iVar25 + -0x6960" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;" (assignment_expression "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(puVar27 + -0x34)" * (cast_expression "(int *)(puVar27 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x34)" ( (binary_expression "puVar27 + -0x34" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(iVar25 + -0x6990)" * (cast_expression "(int *)(iVar25 + -0x6990)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x6990)" ( (binary_expression "iVar25 + -0x6990" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;" statement_identifier : (expression_statement "uVar21 = (uint)piVar18 & 0xfffffdee;" (assignment_expression "uVar21 = (uint)piVar18 & 0xfffffdee" identifier = (binary_expression "(uint)piVar18 & 0xfffffdee" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;)) (if_statement "if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" if (parenthesized_expression "((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*'))" ( (binary_expression "(*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "(*(int *)(puVar27 + -0x44) == 0)" ( (binary_expression "*(int *)(puVar27 + -0x44) == 0" (pointer_expression "*(int *)(puVar27 + -0x44)" * (cast_expression "(int *)(puVar27 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) (compound_statement "{\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }" { (if_statement "if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;" if (parenthesized_expression "((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0'))" ( (binary_expression "(*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')" (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 1) != '\0')" ( (binary_expression "*(char *)(iVar3 + 1) != '\0'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000defd0;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" else (compound_statement "{\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" { (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }" if (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar21 = uVar21 | 0x210;\n        }" { (expression_statement "uVar21 = uVar21 | 0x210;" (assignment_expression "uVar21 = uVar21 | 0x210" identifier = (binary_expression "uVar21 | 0x210" identifier | number_literal)) ;) })) (if_statement "if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" if (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" { (labeled_statement "LAB_000defd0:\n          uVar21 = uVar21 | 0x100;" statement_identifier : (expression_statement "uVar21 = uVar21 | 0x100;" (assignment_expression "uVar21 = uVar21 | 0x100" identifier = (binary_expression "uVar21 | 0x100" identifier | number_literal)) ;)) (expression_statement "pcVar19 = *(char **)(puVar27 + -0x2c);" (assignment_expression "pcVar19 = *(char **)(puVar27 + -0x2c)" identifier = (pointer_expression "*(char **)(puVar27 + -0x2c)" * (cast_expression "(char **)(puVar27 + -0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x2c)" ( (binary_expression "puVar27 + -0x2c" identifier + number_literal) ))))) ;) })) }))) (expression_statement "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" identifier = (cast_expression "(int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(puVar27 + -0x40))" ( (pointer_expression "**(code **)(puVar27 + -0x40)" * (pointer_expression "*(code **)(puVar27 + -0x40)" * (cast_expression "(code **)(puVar27 + -0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) ))))) )) (argument_list "(pcVar20,pcVar19,uVar21)" ( identifier , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 == (int *)0x0) goto LAB_000df26c;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000df26c;" goto statement_identifier ;)) (if_statement "if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;" if (parenthesized_expression "(piVar9 == *(int **)(iVar25 + -0x7174))" ( (binary_expression "piVar9 == *(int **)(iVar25 + -0x7174)" identifier == (pointer_expression "*(int **)(iVar25 + -0x7174)" * (cast_expression "(int **)(iVar25 + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000df004;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10;" (assignment_expression "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10" (pointer_expression "*(uint *)(puVar27 + -0x38)" * (cast_expression "(uint *)(puVar27 + -0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x38)" ( (binary_expression "puVar27 + -0x38" identifier + number_literal) )))) = (binary_expression "uVar21 & 0x10" identifier & number_literal)) ;) (if_statement "if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" if (parenthesized_expression "(((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))))" ( (binary_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" (parenthesized_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*'))" ( (binary_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')" (parenthesized_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*'))" ( (binary_expression "((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "((uVar21 & 0x10) == 0)" ( (binary_expression "(uVar21 & 0x10) == 0" (parenthesized_expression "(uVar21 & 0x10)" ( (binary_expression "uVar21 & 0x10" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "(*(char *)(iVar3 + 2) != '*')" ( (binary_expression "*(char *)(iVar3 + 2) != '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" ( (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))" ( (binary_expression "*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')" (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(iVar3 + 3) != '/')" ( (binary_expression "*(char *)(iVar3 + 3) != '/'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'/'" ' character ')) ))) )) ))) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);" (assignment_expression "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" identifier = (cast_expression "(int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" (parenthesized_expression "(**(code **)(puVar27 + -0x34))" ( (pointer_expression "**(code **)(puVar27 + -0x34)" * (pointer_expression "*(code **)(puVar27 + -0x34)" * (cast_expression "(code **)(puVar27 + -0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x34)" ( (binary_expression "puVar27 + -0x34" identifier + number_literal) ))))) )) (argument_list "(*puVar23,piVar9,piVar18)" ( (pointer_expression "*puVar23" * identifier) , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000df0a0:\n        iVar17 = 0;" statement_identifier : (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;)) (if_statement "if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" if (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) (compound_statement "{\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" { (labeled_statement "LAB_000df0ac:\n          iVar17 = 0;" statement_identifier : (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;)) (expression_statement "piVar12 = piVar10;" (assignment_expression "piVar12 = piVar10" identifier = identifier) ;) (do_statement "do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);" do (compound_statement "{\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          }" { (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar12 != 0)" ( (binary_expression "*piVar12 != 0" (pointer_expression "*piVar12" * identifier) != number_literal) )) ;) })) }) (else_clause "else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" else (compound_statement "{\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" { (expression_statement "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" * (cast_expression "(uint *)(puVar27 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "uVar21 & 0x100" identifier & number_literal)) ;) (expression_statement "piVar10 = piVar9;" (assignment_expression "piVar10 = piVar9" identifier = identifier) ;) (if_statement "if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;" if (parenthesized_expression "((uVar21 & 0x100) == 0)" ( (binary_expression "(uVar21 & 0x100) == 0" (parenthesized_expression "(uVar21 & 0x100)" ( (binary_expression "uVar21 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" * (cast_expression "(uint *)(puVar27 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" if (parenthesized_expression "(((uint)piVar18 & 0x100) != 0)" ( (binary_expression "((uint)piVar18 & 0x100) != 0" (parenthesized_expression "((uint)piVar18 & 0x100)" ( (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" { (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (if_statement "if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" if (parenthesized_expression "((char *)*piVar9 != (char *)0x0)" ( (binary_expression "(char *)*piVar9 != (char *)0x0" (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" { (expression_statement "piVar12 = piVar9;" (assignment_expression "piVar12 = piVar9" identifier = identifier) ;) (if_statement "if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" if (parenthesized_expression "(*(char *)*piVar9 == '\0')" ( (binary_expression "*(char *)*piVar9 == '\0'" (pointer_expression "*(char *)*piVar9" * (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" { (do_statement "do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');" do (compound_statement "{\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            }" { (expression_statement "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;" (assignment_expression "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar19 = (char *)piVar12[1];" (assignment_expression "pcVar19 = (char *)piVar12[1]" identifier = (cast_expression "(char *)piVar12[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" { (expression_statement "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];" (assignment_expression "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)]" (pointer_expression "*piVar9" * identifier) = (subscript_expression "piVar9[*(int *)(puVar27 + -0x3c)]" identifier [ (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) ])) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piVar9 + iVar17;" (assignment_expression "piVar12 = piVar9 + iVar17" identifier = (binary_expression "piVar9 + iVar17" identifier + identifier)) ;) (do_statement "do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);" do (compound_statement "{\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12[-iVar17] = iVar11;" (assignment_expression "piVar12[-iVar17] = iVar11" (subscript_expression "piVar12[-iVar17]" identifier [ (unary_expression "-iVar17" - identifier) ]) = identifier) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000df0ac;" goto statement_identifier ;) })) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }))) (expression_statement "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);" (assignment_expression "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" identifier = (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" ( (pointer_expression "**(code **)(iVar25 + -0x6098)" * (pointer_expression "*(code **)(iVar25 + -0x6098)" * (cast_expression "(code **)(iVar25 + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x6098)" ( (binary_expression "iVar25 + -0x6098" identifier + number_literal) ))))) )) (argument_list "(piVar7,(iVar26 + iVar17) * 4)" ( identifier , (binary_expression "(iVar26 + iVar17) * 4" (parenthesized_expression "(iVar26 + iVar17)" ( (binary_expression "iVar26 + iVar17" identifier + identifier) )) * number_literal) )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar27 + -0x48) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x48) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar10;" (assignment_expression "iVar3 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (while_statement "while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" { (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar18;" (assignment_expression "iVar3 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) })) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);" statement_identifier : (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;)) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df2c8;" 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)) )) (goto_statement "goto LAB_000df2c8;" goto statement_identifier ;)) (goto_statement "goto LAB_000df274;" goto statement_identifier ;) })) (expression_statement "iVar17 = *piVar10;" (assignment_expression "iVar17 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (if_statement "if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" { (expression_statement "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;" (assignment_expression "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4" identifier = (binary_expression "*(int *)(puVar27 + -0x48) + iVar26 * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) + (binary_expression "iVar26 * 4" identifier * number_literal))) ;) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) (do_statement "do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);" do (compound_statement "{\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        }" { (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar11 + -4) = iVar17;" (assignment_expression "*(int *)(iVar11 + -4) = iVar17" (pointer_expression "*(int *)(iVar11 + -4)" * (cast_expression "(int *)(iVar11 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *piVar7;" (assignment_expression "iVar17 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" identifier = (binary_expression "iVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) })) (expression_statement "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" ( (binary_expression "*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) + (binary_expression "(iVar26 + 0x3fffffff) * 4" (parenthesized_expression "(iVar26 + 0x3fffffff)" ( (binary_expression "iVar26 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) = number_literal) ;) (if_statement "if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" if (parenthesized_expression "(piVar9 == piVar10)" ( (binary_expression "piVar9 == piVar10" identifier == identifier) )) (compound_statement "{\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }" { (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar27 + -0x38) != 0)" ( (binary_expression "*(int *)(puVar27 + -0x38) != 0" (pointer_expression "*(int *)(puVar27 + -0x38)" * (cast_expression "(int *)(puVar27 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x38)" ( (binary_expression "puVar27 + -0x38" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" { (if_statement "if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;" if (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) )) (goto_statement "goto LAB_000df14c;" goto statement_identifier ;)) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" if (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" { (if_statement "if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;" if (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0')" ( (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000df14c;" goto statement_identifier ;)) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) })) })) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);" statement_identifier : (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;)) }))) (expression_statement "piVar7 = *(int **)(puVar27 + -0x48);" (assignment_expression "piVar7 = *(int **)(puVar27 + -0x48)" identifier = (pointer_expression "*(int **)(puVar27 + -0x48)" * (cast_expression "(int **)(puVar27 + -0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) goto LAB_000df004;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000df004;" goto statement_identifier ;)) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" identifier = (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000df34c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" if (parenthesized_expression "(*(char *)(iVar3 + 1) == '\0')" ( (binary_expression "*(char *)(iVar3 + 1) == '\0'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" { (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x6098)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x6098" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df3a4;" 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)) )) (goto_statement "goto LAB_000df3a4;" goto statement_identifier ;)) (if_statement "if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000df634;" goto statement_identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" if (parenthesized_expression "(iVar25 == 2)" ( (binary_expression "iVar25 == 2" identifier == number_literal) )) (compound_statement "{\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" { (if_statement "if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" if (parenthesized_expression "(((uint)piVar18 & 0x800) == 0)" ( (binary_expression "((uint)piVar18 & 0x800) == 0" (parenthesized_expression "((uint)piVar18 & 0x800)" ( (binary_expression "(uint)piVar18 & 0x800" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar3 = 1;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" else (compound_statement "{\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" { (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" identifier = (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000df634;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 + 2;" (assignment_expression "iVar17 = iVar17 + 2" identifier = (binary_expression "iVar17 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_000df638;" goto statement_identifier ;) })) (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" if (parenthesized_expression "(((uint)piVar18 & 0x400) != 0)" ( (binary_expression "((uint)piVar18 & 0x400) != 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" { (if_statement "if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" ( (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000df42c;" goto statement_identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000debcc;" goto statement_identifier ;) })) (expression_statement "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22)" identifier = (cast_expression "(int *)glob_vector(pcVar20,__pattern,uVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(pcVar20,__pattern,uVar22)" identifier (argument_list "(pcVar20,__pattern,uVar22)" ( identifier , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\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      iVar3 = 1;\n      goto LAB_000debec;\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000debec;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" statement_identifier : (if_statement "if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" else (compound_statement "{\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" { (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" ( (pointer_expression "**(code **)(iVar25 + -0x7ce8)" * (pointer_expression "*(code **)(iVar25 + -0x7ce8)" * (cast_expression "(code **)(iVar25 + -0x7ce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ce8)" ( (binary_expression "iVar25 + -0x7ce8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" ( (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" * (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" * (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) })))) (if_statement "if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d20)" * (cast_expression "(code **)(iVar25 + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d20)" ( (binary_expression "iVar25 + -0x7d20" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" else (compound_statement "{\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" { (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" ( (pointer_expression "**(code **)(iVar25 + -0x7cf4)" * (pointer_expression "*(code **)(iVar25 + -0x7cf4)" * (cast_expression "(code **)(iVar25 + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf4)" ( (binary_expression "iVar25 + -0x7cf4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" identifier = (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return piVar7;" return identifier ;) })))
(translation_unit "char ** glob_vector(char *pat,char *dir,int flags)\n\n{\n  bool bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  code *pcVar7;\n  int *piVar8;\n  size_t len;\n  int iVar9;\n  char **ppcVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  char *__pattern;\n  int iVar13;\n  char *pcVar14;\n  char **ppcVar15;\n  uint flags_00;\n  int *piVar16;\n  char *pcVar17;\n  char *pcVar18;\n  uint uVar19;\n  char *pcVar20;\n  char **ppcVar21;\n  int *piVar22;\n  uint uVar23;\n  char *pcVar24;\n  int *unaff_s6;\n  int *unaff_s7;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 auStack_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int iStack_fc;\n  char *pcStack_f4;\n  uint local_f0;\n  int local_e4;\n  int *piStack_e0;\n  stat finfo;\n  \n  puVar26 = auStack_128;\n  pcVar3 = *(char **)PTR___stack_chk_guard_0015858c;\n  ppcVar21 = (char **)0x0;\n  if ((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')) {\n    ppcVar21 = (char **)0x0;\n    iVar4 = glob_testdir(dir,0);\n    if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }\n    puVar27 = auStack_130;\n    puVar26 = auStack_130;\n    piVar8 = &local_120;\n    local_120 = 0;\n    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();\n    bVar1 = puVar5 == (undefined1 *)0x0;\n    if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }\n    uVar23 = (uint)!bVar1;\n    puVar5 = auStack_130;\n    if (pat == (char *)0x0) goto LAB_000ddefc;\n    piVar22 = (int *)0x0;\n    if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }\n  }\n  else {\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }\nLAB_000ddf00:\n  piVar16 = piVar8;\n  if (bVar1) {\nLAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)0x0;\n    piVar8 = (int *)0x0;\n  }\n  else {\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }\n  if (pcVar3 == *(char **)PTR___stack_chk_guard_0015858c) {\n    return ppcVar15;\n  }\n  pcVar28 = glob_filename;\n  puVar25 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = auStack_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = uVar23;\n  *(int *)(puVar27 + -0x18) = flags;\n  *(char **)(puVar27 + -0x1c) = pat;\n  *(int **)(puVar27 + -0x20) = piVar22;\n  *(char ***)(puVar27 + -0x24) = ppcVar15;\n  *(int **)(puVar27 + -0x28) = piVar8;\n  *(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c;\n  puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (puVar11 == (undefined4 *)0x0) {\n    return (char **)0x0;\n  }\n  *puVar11 = 0;\n  pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (pcVar12 == (char *)0x0) {\nLAB_000deb88:\n    bVar1 = false;\n    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    pcVar24 = (char *)0x0;\n  }\n  else {\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }\n  pcVar12 = pcVar24 + 1;\nLAB_000df638:\n  pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  *ppcVar15 = pcVar3;\n  if (pcVar3 == (char *)0x0) {\n    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);\n    return ppcVar21;\n  }\n  (**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12);\n  if (!bVar1) {\n    ppcVar15[1] = (char *)0x0;\n    return ppcVar15;\n  }\n  ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n  return ppcVar21;\n}\n\n" (function_definition "char ** glob_vector(char *pat,char *dir,int flags)\n\n{\n  bool bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  code *pcVar7;\n  int *piVar8;\n  size_t len;\n  int iVar9;\n  char **ppcVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  char *__pattern;\n  int iVar13;\n  char *pcVar14;\n  char **ppcVar15;\n  uint flags_00;\n  int *piVar16;\n  char *pcVar17;\n  char *pcVar18;\n  uint uVar19;\n  char *pcVar20;\n  char **ppcVar21;\n  int *piVar22;\n  uint uVar23;\n  char *pcVar24;\n  int *unaff_s6;\n  int *unaff_s7;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 auStack_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int iStack_fc;\n  char *pcStack_f4;\n  uint local_f0;\n  int local_e4;\n  int *piStack_e0;\n  stat finfo;\n  \n  puVar26 = auStack_128;\n  pcVar3 = *(char **)PTR___stack_chk_guard_0015858c;\n  ppcVar21 = (char **)0x0;\n  if ((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')) {\n    ppcVar21 = (char **)0x0;\n    iVar4 = glob_testdir(dir,0);\n    if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }\n    puVar27 = auStack_130;\n    puVar26 = auStack_130;\n    piVar8 = &local_120;\n    local_120 = 0;\n    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();\n    bVar1 = puVar5 == (undefined1 *)0x0;\n    if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }\n    uVar23 = (uint)!bVar1;\n    puVar5 = auStack_130;\n    if (pat == (char *)0x0) goto LAB_000ddefc;\n    piVar22 = (int *)0x0;\n    if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }\n  }\n  else {\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }\nLAB_000ddf00:\n  piVar16 = piVar8;\n  if (bVar1) {\nLAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)0x0;\n    piVar8 = (int *)0x0;\n  }\n  else {\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }\n  if (pcVar3 == *(char **)PTR___stack_chk_guard_0015858c) {\n    return ppcVar15;\n  }\n  pcVar28 = glob_filename;\n  puVar25 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = auStack_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = uVar23;\n  *(int *)(puVar27 + -0x18) = flags;\n  *(char **)(puVar27 + -0x1c) = pat;\n  *(int **)(puVar27 + -0x20) = piVar22;\n  *(char ***)(puVar27 + -0x24) = ppcVar15;\n  *(int **)(puVar27 + -0x28) = piVar8;\n  *(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c;\n  puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (puVar11 == (undefined4 *)0x0) {\n    return (char **)0x0;\n  }\n  *puVar11 = 0;\n  pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (pcVar12 == (char *)0x0) {\nLAB_000deb88:\n    bVar1 = false;\n    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    pcVar24 = (char *)0x0;\n  }\n  else {\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }\n  pcVar12 = pcVar24 + 1;\nLAB_000df638:\n  pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  *ppcVar15 = pcVar3;\n  if (pcVar3 == (char *)0x0) {\n    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);\n    return ppcVar21;\n  }\n  (**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12);\n  if (!bVar1) {\n    ppcVar15[1] = (char *)0x0;\n    return ppcVar15;\n  }\n  ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n  return ppcVar21;\n}" primitive_type (pointer_declarator "** glob_vector(char *pat,char *dir,int flags)" * (pointer_declarator "* glob_vector(char *pat,char *dir,int flags)" * (function_declarator "glob_vector(char *pat,char *dir,int flags)" identifier (parameter_list "(char *pat,char *dir,int flags)" ( (parameter_declaration "char *pat" primitive_type (pointer_declarator "*pat" * identifier)) , (parameter_declaration "char *dir" primitive_type (pointer_declarator "*dir" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) ))))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  code *pcVar7;\n  int *piVar8;\n  size_t len;\n  int iVar9;\n  char **ppcVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  char *__pattern;\n  int iVar13;\n  char *pcVar14;\n  char **ppcVar15;\n  uint flags_00;\n  int *piVar16;\n  char *pcVar17;\n  char *pcVar18;\n  uint uVar19;\n  char *pcVar20;\n  char **ppcVar21;\n  int *piVar22;\n  uint uVar23;\n  char *pcVar24;\n  int *unaff_s6;\n  int *unaff_s7;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 auStack_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int iStack_fc;\n  char *pcStack_f4;\n  uint local_f0;\n  int local_e4;\n  int *piStack_e0;\n  stat finfo;\n  \n  puVar26 = auStack_128;\n  pcVar3 = *(char **)PTR___stack_chk_guard_0015858c;\n  ppcVar21 = (char **)0x0;\n  if ((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')) {\n    ppcVar21 = (char **)0x0;\n    iVar4 = glob_testdir(dir,0);\n    if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }\n    puVar27 = auStack_130;\n    puVar26 = auStack_130;\n    piVar8 = &local_120;\n    local_120 = 0;\n    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();\n    bVar1 = puVar5 == (undefined1 *)0x0;\n    if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }\n    uVar23 = (uint)!bVar1;\n    puVar5 = auStack_130;\n    if (pat == (char *)0x0) goto LAB_000ddefc;\n    piVar22 = (int *)0x0;\n    if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }\n  }\n  else {\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }\nLAB_000ddf00:\n  piVar16 = piVar8;\n  if (bVar1) {\nLAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)0x0;\n    piVar8 = (int *)0x0;\n  }\n  else {\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }\n  if (pcVar3 == *(char **)PTR___stack_chk_guard_0015858c) {\n    return ppcVar15;\n  }\n  pcVar28 = glob_filename;\n  puVar25 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = auStack_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = uVar23;\n  *(int *)(puVar27 + -0x18) = flags;\n  *(char **)(puVar27 + -0x1c) = pat;\n  *(int **)(puVar27 + -0x20) = piVar22;\n  *(char ***)(puVar27 + -0x24) = ppcVar15;\n  *(int **)(puVar27 + -0x28) = piVar8;\n  *(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c;\n  puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (puVar11 == (undefined4 *)0x0) {\n    return (char **)0x0;\n  }\n  *puVar11 = 0;\n  pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  if (pcVar12 == (char *)0x0) {\nLAB_000deb88:\n    bVar1 = false;\n    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    pcVar24 = (char *)0x0;\n  }\n  else {\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }\n  pcVar12 = pcVar24 + 1;\nLAB_000df638:\n  pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);\n  iVar4 = *(int *)(puVar27 + -0x50);\n  *ppcVar15 = pcVar3;\n  if (pcVar3 == (char *)0x0) {\n    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);\n    return ppcVar21;\n  }\n  (**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12);\n  if (!bVar1) {\n    ppcVar15[1] = (char *)0x0;\n    return ppcVar15;\n  }\n  ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n  return ppcVar21;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char **ppcVar10;" primitive_type (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *__pattern;" primitive_type (pointer_declarator "*__pattern" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "char **ppcVar15;" primitive_type (pointer_declarator "**ppcVar15" * (pointer_declarator "*ppcVar15" * identifier)) ;) (declaration "uint flags_00;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "char **ppcVar21;" primitive_type (pointer_declarator "**ppcVar21" * (pointer_declarator "*ppcVar21" * identifier)) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int *unaff_s7;" primitive_type (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_130 [8];" type_identifier (array_declarator "auStack_130 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_128 [8];" type_identifier (array_declarator "auStack_128 [8]" identifier [ number_literal ]) ;) (declaration "int local_120;" primitive_type identifier ;) (declaration "undefined1 *local_11c;" type_identifier (pointer_declarator "*local_11c" * identifier) ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "char *pcStack_f4;" primitive_type (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "int *piStack_e0;" primitive_type (pointer_declarator "*piStack_e0" * identifier) ;) (declaration "stat finfo;" type_identifier identifier ;) (expression_statement "puVar26 = auStack_128;" (assignment_expression "puVar26 = auStack_128" identifier = identifier) ;) (expression_statement "pcVar3 = *(char **)PTR___stack_chk_guard_0015858c;" (assignment_expression "pcVar3 = *(char **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "ppcVar21 = (char **)0x0;" (assignment_expression "ppcVar21 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if ((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')) {\n    ppcVar21 = (char **)0x0;\n    iVar4 = glob_testdir(dir,0);\n    if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }\n    puVar27 = auStack_130;\n    puVar26 = auStack_130;\n    piVar8 = &local_120;\n    local_120 = 0;\n    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();\n    bVar1 = puVar5 == (undefined1 *)0x0;\n    if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }\n    uVar23 = (uint)!bVar1;\n    puVar5 = auStack_130;\n    if (pat == (char *)0x0) goto LAB_000ddefc;\n    piVar22 = (int *)0x0;\n    if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }\n  }\n  else {\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }" if (parenthesized_expression "((pat == (char *)0x0) || (uVar23 = 0, *pat == '\0'))" ( (binary_expression "(pat == (char *)0x0) || (uVar23 = 0, *pat == '\0')" (parenthesized_expression "(pat == (char *)0x0)" ( (binary_expression "pat == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar23 = 0, *pat == '\0')" ( (comma_expression "uVar23 = 0, *pat == '\0'" (assignment_expression "uVar23 = 0" identifier = number_literal) , (binary_expression "*pat == '\0'" (pointer_expression "*pat" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    ppcVar21 = (char **)0x0;\n    iVar4 = glob_testdir(dir,0);\n    if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }\n    puVar27 = auStack_130;\n    puVar26 = auStack_130;\n    piVar8 = &local_120;\n    local_120 = 0;\n    puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();\n    bVar1 = puVar5 == (undefined1 *)0x0;\n    if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }\n    uVar23 = (uint)!bVar1;\n    puVar5 = auStack_130;\n    if (pat == (char *)0x0) goto LAB_000ddefc;\n    piVar22 = (int *)0x0;\n    if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }\n  }" { (expression_statement "ppcVar21 = (char **)0x0;" (assignment_expression "ppcVar21 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "iVar4 = glob_testdir(dir,0);" (assignment_expression "iVar4 = glob_testdir(dir,0)" identifier = (call_expression "glob_testdir(dir,0)" identifier (argument_list "(dir,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar4 < 0) {\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n      ppcVar21 = (char **)FUN_000de910(1);\n      return ppcVar21;\n    }" { (expression_statement "ppcVar21 = (char **)FUN_000de910(1);" (assignment_expression "ppcVar21 = (char **)FUN_000de910(1)" identifier = (cast_expression "(char **)FUN_000de910(1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de910(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" identifier = identifier) ;) (expression_statement "puVar26 = auStack_130;" (assignment_expression "puVar26 = auStack_130" identifier = identifier) ;) (expression_statement "piVar8 = &local_120;" (assignment_expression "piVar8 = &local_120" identifier = (pointer_expression "&local_120" & identifier)) ;) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)();" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR_malloc_0015849c)()" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0015849c)()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)()" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = puVar5 == (undefined1 *)0x0;" (assignment_expression "bVar1 = puVar5 == (undefined1 *)0x0" identifier = (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar1) {\n      piVar8 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      piVar8 = (int *)0x0;\n    }" { (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }" else (compound_statement "{\n      local_11c = puVar5;\n      *puVar5 = 0;\n    }" { (expression_statement "local_11c = puVar5;" (assignment_expression "local_11c = puVar5" identifier = identifier) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }))) (expression_statement "uVar23 = (uint)!bVar1;" (assignment_expression "uVar23 = (uint)!bVar1" identifier = (cast_expression "(uint)!bVar1" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar1" ! identifier))) ;) (expression_statement "puVar5 = auStack_130;" (assignment_expression "puVar5 = auStack_130" identifier = identifier) ;) (if_statement "if (pat == (char *)0x0) goto LAB_000ddefc;" if (parenthesized_expression "(pat == (char *)0x0)" ( (binary_expression "pat == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ddefc;" goto statement_identifier ;)) (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pat != '\0') {\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }" if (parenthesized_expression "(*pat != '\0')" ( (binary_expression "*pat != '\0'" (pointer_expression "*pat" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_e4 = 1;\n      goto LAB_000ddf3c;\n    }" { (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ddf3c;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }" else (compound_statement "{\n    local_e4 = 0;\n    bVar1 = false;\n    piVar8 = (int *)0x0;\nLAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);\n    puVar5 = puVar26;\n    if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }\nLAB_000ddefc:\n    puVar27 = puVar5;\n    piVar22 = (int *)0x0;\n  }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000ddf3c:\n    iVar4 = (*(code *)PTR_strlen_00158444)(pat);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_00158444)(pat);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_00158444)(pat)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(pat)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pat)" ( identifier )))) ;)) (expression_statement "puVar5 = puVar26;" (assignment_expression "puVar5 = puVar26" identifier = identifier) ;) (if_statement "if (local_e4 == 0) {\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }" if (parenthesized_expression "(local_e4 == 0)" ( (binary_expression "local_e4 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar13 = glob_pattern_p(pat,(int)ppcVar21);\n      if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }\n      ppcVar21 = (char **)0x0;\n      iVar13 = glob_testdir(dir,0);\n      if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }\n      flags = (*(code *)PTR_strlen_00158444)();\n      iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);\n      pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n      if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }\n      if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }\n      bVar1 = true;\n    }" { (expression_statement "iVar13 = glob_pattern_p(pat,(int)ppcVar21);" (assignment_expression "iVar13 = glob_pattern_p(pat,(int)ppcVar21)" identifier = (call_expression "glob_pattern_p(pat,(int)ppcVar21)" identifier (argument_list "(pat,(int)ppcVar21)" ( identifier , (cast_expression "(int)ppcVar21" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar13 != 0) {\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_opendir_001582b8)();\n        if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }\n        local_f0 = 1;\n        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }\n        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }\n        if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }\n        uVar6 = flags >> 2 & 4;\n        uVar19 = flags & 0x100;\n        flags_00 = uVar6 | 8;\n        if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }\n        piVar22 = (int *)0x0;\n        pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n        pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        puVar27 = puVar26;\n        piVar16 = piVar8;\nLAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);\n        uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n        if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }\n        ppcVar15 = (char **)((int)piVar8 + 0x13);\n        ppcVar21 = ppcVar15;\n        iVar13 = (*pcVar28)(pat,ppcVar15,flags);\n        unaff_s6 = (int *)PTR_interrupt_state_00156848;\n        unaff_s7 = (int *)PTR_terminating_signal_00156844;\n        if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }\n        goto LAB_000de030;\n      }" { (expression_statement "iVar4 = (*(code *)PTR_opendir_001582b8)();" (assignment_expression "iVar4 = (*(code *)PTR_opendir_001582b8)()" identifier = (call_expression "(*(code *)PTR_opendir_001582b8)()" (parenthesized_expression "(*(code *)PTR_opendir_001582b8)" ( (pointer_expression "*(code *)PTR_opendir_001582b8" * (cast_expression "(code *)PTR_opendir_001582b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          ppcVar21 = (char **)FUN_000de910();\n          return ppcVar21;\n        }" { (expression_statement "ppcVar21 = (char **)FUN_000de910();" (assignment_expression "ppcVar21 = (char **)FUN_000de910()" identifier = (cast_expression "(char **)FUN_000de910()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de910()" identifier (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (if_statement "if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n          local_f0 = 5;\n        }" if (parenthesized_expression "(*(int *)PTR_noglob_dot_filenames_00157468 != 0)" ( (binary_expression "*(int *)PTR_noglob_dot_filenames_00157468 != 0" (pointer_expression "*(int *)PTR_noglob_dot_filenames_00157468" * (cast_expression "(int *)PTR_noglob_dot_filenames_00157468" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_f0 = 5;\n        }" { (expression_statement "local_f0 = 5;" (assignment_expression "local_f0 = 5" identifier = number_literal) ;) })) (if_statement "if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n          local_f0 = local_f0 | 0x10;\n        }" if (parenthesized_expression "(*(int *)PTR_glob_ignore_case_0015745c != 0)" ( (binary_expression "*(int *)PTR_glob_ignore_case_0015745c != 0" (pointer_expression "*(int *)PTR_glob_ignore_case_0015745c" * (cast_expression "(int *)PTR_glob_ignore_case_0015745c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_f0 = local_f0 | 0x10;\n        }" { (expression_statement "local_f0 = local_f0 | 0x10;" (assignment_expression "local_f0 = local_f0 | 0x10" identifier = (binary_expression "local_f0 | 0x10" identifier | number_literal)) ;) })) (if_statement "if (*(int *)PTR_extended_glob_00156948 != 0) {\n          local_f0 = local_f0 | 0x20;\n        }" if (parenthesized_expression "(*(int *)PTR_extended_glob_00156948 != 0)" ( (binary_expression "*(int *)PTR_extended_glob_00156948 != 0" (pointer_expression "*(int *)PTR_extended_glob_00156948" * (cast_expression "(int *)PTR_extended_glob_00156948" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_f0 = local_f0 | 0x20;\n        }" { (expression_statement "local_f0 = local_f0 | 0x20;" (assignment_expression "local_f0 = local_f0 | 0x20" identifier = (binary_expression "local_f0 | 0x20" identifier | number_literal)) ;) })) (expression_statement "uVar6 = flags >> 2 & 4;" (assignment_expression "uVar6 = flags >> 2 & 4" identifier = (binary_expression "flags >> 2 & 4" (binary_expression "flags >> 2" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar19 = flags & 0x100;" (assignment_expression "uVar19 = flags & 0x100" identifier = (binary_expression "flags & 0x100" identifier & number_literal)) ;) (expression_statement "flags_00 = uVar6 | 8;" (assignment_expression "flags_00 = uVar6 | 8" identifier = (binary_expression "uVar6 | 8" identifier | number_literal)) ;) (if_statement "if (uVar19 == 0) {\n          flags_00 = uVar6;\n        }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n          flags_00 = uVar6;\n        }" { (expression_statement "flags_00 = uVar6;" (assignment_expression "flags_00 = uVar6" identifier = identifier) ;) })) (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);" (assignment_expression "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x3104)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x3104)" ( (binary_expression "PTR_LAB_00157bb0 + -0x3104" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00157bb0 + -0x29e8)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x29e8)" ( (binary_expression "PTR_LAB_00157bb0 + -0x29e8" identifier + number_literal) )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "unaff_s7 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar27 = puVar26;" (assignment_expression "puVar27 = puVar26" identifier = identifier) ;) (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" identifier = identifier) ;) (labeled_statement "LAB_000de030:\n        do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);" statement_identifier : (do_statement "do {\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        } while (*piVar8 == 0 && piVar8[1] == 0);" do (compound_statement "{\n          if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }\n          if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }\n          iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }\n          piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();\n          if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }\n        }" { (if_statement "if (*unaff_s6 != 0) {\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }" if (parenthesized_expression "(*unaff_s6 != 0)" ( (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" * identifier) != number_literal) )) (compound_statement "{\n            ppcVar21 = (char **)FUN_000de200();\n            return ppcVar21;\n          }" { (expression_statement "ppcVar21 = (char **)FUN_000de200();" (assignment_expression "ppcVar21 = (char **)FUN_000de200()" identifier = (cast_expression "(char **)FUN_000de200()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de200()" identifier (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (*unaff_s7 != 0) {\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }" if (parenthesized_expression "(*unaff_s7 != 0)" ( (binary_expression "*unaff_s7 != 0" (pointer_expression "*unaff_s7" * identifier) != number_literal) )) (compound_statement "{\n            ppcVar21 = (char **)FUN_000de200(2);\n            return ppcVar21;\n          }" { (expression_statement "ppcVar21 = (char **)FUN_000de200(2);" (assignment_expression "ppcVar21 = (char **)FUN_000de200(2)" identifier = (cast_expression "(char **)FUN_000de200(2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de200(2)" identifier (argument_list "(2)" ( number_literal ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)();" (assignment_expression "iVar13 = (*(code *)PTR_signal_is_pending_00157bdc)()" identifier = (call_expression "(*(code *)PTR_signal_is_pending_00157bdc)()" (parenthesized_expression "(*(code *)PTR_signal_is_pending_00157bdc)" ( (pointer_expression "*(code *)PTR_signal_is_pending_00157bdc" * (cast_expression "(code *)PTR_signal_is_pending_00157bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 0) {\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            ppcVar21 = (char **)FUN_000de200(iVar4);\n            return ppcVar21;\n          }" { (expression_statement "ppcVar21 = (char **)FUN_000de200(iVar4);" (assignment_expression "ppcVar21 = (char **)FUN_000de200(iVar4)" identifier = (cast_expression "(char **)FUN_000de200(iVar4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de200(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR_readdir64_0015832c)()" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_0015832c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_0015832c)()" (parenthesized_expression "(*(code *)PTR_readdir64_0015832c)" ( (pointer_expression "*(code *)PTR_readdir64_0015832c" * (cast_expression "(code *)PTR_readdir64_0015832c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR_closedir_001582bc)(iVar4);\n            piVar8 = piVar16;\n            if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;\n            iVar4 = (*(code *)PTR_strlen_00158444)(dir);\n            flags = iVar4 + 1;\n            pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);\n            piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n            if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }\n            if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }\n            piVar8[1] = (int)pat;\n            *piVar8 = (int)piVar16;\n            if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }\n            uVar23 = uVar23 + 1;\n            ppcVar21 = (char **)dir;\n            goto LAB_000ddf00;\n          }" { (expression_statement "(*(code *)PTR_closedir_001582bc)(iVar4);" (call_expression "(*(code *)PTR_closedir_001582bc)(iVar4)" (parenthesized_expression "(*(code *)PTR_closedir_001582bc)" ( (pointer_expression "*(code *)PTR_closedir_001582bc" * (cast_expression "(code *)PTR_closedir_001582bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "piVar8 = piVar16;" (assignment_expression "piVar8 = piVar16" identifier = identifier) ;) (if_statement "if ((flags & 0x210U) != 0x210) goto LAB_000ddf00;" if (parenthesized_expression "((flags & 0x210U) != 0x210)" ( (binary_expression "(flags & 0x210U) != 0x210" (parenthesized_expression "(flags & 0x210U)" ( (binary_expression "flags & 0x210U" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;)) (expression_statement "iVar4 = (*(code *)PTR_strlen_00158444)(dir);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_00158444)(dir)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(dir)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dir)" ( identifier )))) ;) (expression_statement "flags = iVar4 + 1;" (assignment_expression "flags = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "pat = (char *)(*(code *)PTR_malloc_0015849c)(flags);" (assignment_expression "pat = (char *)(*(code *)PTR_malloc_0015849c)(flags)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0015849c)(flags)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(flags)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags)" ( identifier ))))) ;) (expression_statement "piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }\n              goto LAB_000ddf10;\n            }" { (if_statement "if ((char **)pat != (char **)0x0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }" if (parenthesized_expression "((char **)pat != (char **)0x0)" ( (binary_expression "(char **)pat != (char **)0x0" (cast_expression "(char **)pat" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);\n                return ppcVar21;\n              }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pat)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pat)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pat)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pat)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;) })) (if_statement "if ((char **)pat == (char **)0x0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }" if (parenthesized_expression "((char **)pat == (char **)0x0)" ( (binary_expression "(char **)pat == (char **)0x0" (cast_expression "(char **)pat" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n              return ppcVar21;\n            }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar8)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar8)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "piVar8[1] = (int)pat;" (assignment_expression "piVar8[1] = (int)pat" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = (cast_expression "(int)pat" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar8 = (int)piVar16;" (assignment_expression "*piVar8 = (int)piVar16" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar19 == 0) {\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }\n            else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)PTR_memcpy_00158594)(pat,dir,flags);\n            }" { (expression_statement "(*(code *)PTR_memcpy_00158594)(pat,dir,flags);" (call_expression "(*(code *)PTR_memcpy_00158594)(pat,dir,flags)" (parenthesized_expression "(*(code *)PTR_memcpy_00158594)" ( (pointer_expression "*(code *)PTR_memcpy_00158594" * (cast_expression "(code *)PTR_memcpy_00158594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pat,dir,flags)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }" else (compound_statement "{\n              *pat = '\0';\n              dir = (char *)ppcVar21;\n            }" { (expression_statement "*pat = '\0';" (assignment_expression "*pat = '\0'" (pointer_expression "*pat" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "dir = (char *)ppcVar21;" (assignment_expression "dir = (char *)ppcVar21" identifier = (cast_expression "(char *)ppcVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "ppcVar21 = (char **)dir;" (assignment_expression "ppcVar21 = (char **)dir" identifier = (cast_expression "(char **)dir" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*piVar8 == 0 && piVar8[1] == 0)" ( (binary_expression "*piVar8 == 0 && piVar8[1] == 0" (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) && (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal)) )) ;)) (expression_statement "uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();" (assignment_expression "uVar6 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_001584e0" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_001584e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (1 < uVar6) {\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }" if (parenthesized_expression "(1 < uVar6)" ( (binary_expression "1 < uVar6" number_literal < identifier) )) (compound_statement "{\n          ppcVar21 = (char **)((int)piVar8 + 0x13);\n          iVar13 = mbskipname(pat,(char *)ppcVar21,flags);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          unaff_s7 = (int *)PTR_terminating_signal_00156844;\n          if (iVar13 != 0) goto LAB_000de030;\n        }" { (expression_statement "ppcVar21 = (char **)((int)piVar8 + 0x13);" (assignment_expression "ppcVar21 = (char **)((int)piVar8 + 0x13)" identifier = (cast_expression "(char **)((int)piVar8 + 0x13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar8 + 0x13)" ( (binary_expression "(int)piVar8 + 0x13" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar13 = mbskipname(pat,(char *)ppcVar21,flags);" (assignment_expression "iVar13 = mbskipname(pat,(char *)ppcVar21,flags)" identifier = (call_expression "mbskipname(pat,(char *)ppcVar21,flags)" identifier (argument_list "(pat,(char *)ppcVar21,flags)" ( identifier , (cast_expression "(char *)ppcVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "unaff_s7 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar13 != 0) goto LAB_000de030;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000de030;" goto statement_identifier ;)) })) (expression_statement "ppcVar15 = (char **)((int)piVar8 + 0x13);" (assignment_expression "ppcVar15 = (char **)((int)piVar8 + 0x13)" identifier = (cast_expression "(char **)((int)piVar8 + 0x13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar8 + 0x13)" ( (binary_expression "(int)piVar8 + 0x13" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppcVar21 = ppcVar15;" (assignment_expression "ppcVar21 = ppcVar15" identifier = identifier) ;) (expression_statement "iVar13 = (*pcVar28)(pat,ppcVar15,flags);" (assignment_expression "iVar13 = (*pcVar28)(pat,ppcVar15,flags)" identifier = (call_expression "(*pcVar28)(pat,ppcVar15,flags)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(pat,ppcVar15,flags)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "unaff_s7 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar13 == 0) {\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }\n          if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\nLAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);\n          iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);\n          iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);\n          if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }\n          if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n          return ppcVar21;\n        }" { (if_statement "if ((flags & 0x18U) == 0) {\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }\n          else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }" if (parenthesized_expression "((flags & 0x18U) == 0)" ( (binary_expression "(flags & 0x18U) == 0" (parenthesized_expression "(flags & 0x18U)" ( (binary_expression "flags & 0x18U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }\n            if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }\n          }" { (labeled_statement "LAB_000de13c:\n            if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }" statement_identifier : (if_statement "if ((flags & 0x10U) == 0) {\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }" if (parenthesized_expression "((flags & 0x10U) == 0)" ( (binary_expression "(flags & 0x10U) == 0" (parenthesized_expression "(flags & 0x10U)" ( (binary_expression "flags & 0x10U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }\nLAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);\n              ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);\n              iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              unaff_s7 = (int *)PTR_terminating_signal_00156844;\n              if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }\n              goto LAB_000de030;\n            }" { (if_statement "if ((flags & 8U) != 0) {\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }" if (parenthesized_expression "((flags & 8U) != 0)" ( (binary_expression "(flags & 8U) != 0" (parenthesized_expression "(flags & 8U)" ( (binary_expression "flags & 8U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n                return ppcVar21;\n              }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (labeled_statement "LAB_000de658:\n              len = (*(code *)PTR_strlen_00158444)(ppcVar15);" statement_identifier : (expression_statement "len = (*(code *)PTR_strlen_00158444)(ppcVar15);" (assignment_expression "len = (*(code *)PTR_strlen_00158444)(ppcVar15)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(ppcVar15)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar15)" ( identifier )))) ;)) (expression_statement "ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len);" (assignment_expression "ppcVar21 = (char **)fnx_fromfs((char *)ppcVar15,len)" identifier = (cast_expression "(char **)fnx_fromfs((char *)ppcVar15,len)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "fnx_fromfs((char *)ppcVar15,len)" identifier (argument_list "((char *)ppcVar15,len)" ( (cast_expression "(char *)ppcVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) (expression_statement "iVar13 = strmatch(pat,(char *)ppcVar21,local_f0);" (assignment_expression "iVar13 = strmatch(pat,(char *)ppcVar21,local_f0)" identifier = (call_expression "strmatch(pat,(char *)ppcVar21,local_f0)" identifier (argument_list "(pat,(char *)ppcVar21,local_f0)" ( identifier , (cast_expression "(char *)ppcVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "unaff_s7 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar13 != 1) {\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }" if (parenthesized_expression "(iVar13 != 1)" ( (binary_expression "iVar13 != 1" identifier != number_literal) )) (compound_statement "{\n                if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }\n                if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }\n                *piVar8 = (int)piVar16;\n                piVar8[1] = iVar13;\n                iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                (*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);\n                uVar23 = uVar23 + 1;\n                ppcVar21 = ppcVar15;\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                unaff_s7 = (int *)PTR_terminating_signal_00156844;\n                piVar16 = piVar8;\n              }" { (if_statement "if (local_e4 < 100000) {\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }\n                else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }" if (parenthesized_expression "(local_e4 < 100000)" ( (binary_expression "local_e4 < 100000" identifier < number_literal) )) (compound_statement "{\n                  piVar8 = (int *)(puVar27 + 8);\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  puVar27 = puVar27 + -8;\n                  local_e4 = local_e4 + 8;\n                }" { (expression_statement "piVar8 = (int *)(puVar27 + 8);" (assignment_expression "piVar8 = (int *)(puVar27 + 8)" identifier = (cast_expression "(int *)(puVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);" (assignment_expression "iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(ppcVar15)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar15)" ( identifier )))) ;) (expression_statement "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);" (assignment_expression "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar13 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13 + 1)" ( (binary_expression "iVar13 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar27 = puVar27 + -8;" (assignment_expression "puVar27 = puVar27 + -8" identifier = (binary_expression "puVar27 + -8" identifier + number_literal)) ;) (expression_statement "local_e4 = local_e4 + 8;" (assignment_expression "local_e4 = local_e4 + 8" identifier = (binary_expression "local_e4 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }" else (compound_statement "{\n                  piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                  if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }\n                  iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);\n                  iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);\n                  if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }\n                }" { (expression_statement "piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar8 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (piVar22 == (int *)0x0) {\n                    piVar22 = piVar8;\n                  }" if (parenthesized_expression "(piVar22 == (int *)0x0)" ( (binary_expression "piVar22 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    piVar22 = piVar8;\n                  }" { (expression_statement "piVar22 = piVar8;" (assignment_expression "piVar22 = piVar8" identifier = identifier) ;) })) (expression_statement "iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15);" (assignment_expression "iVar13 = (*(code *)PTR_strlen_00158444)(ppcVar15)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(ppcVar15)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar15)" ( identifier )))) ;) (expression_statement "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1);" (assignment_expression "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar13 + 1)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar13 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13 + 1)" ( (binary_expression "iVar13 + 1" identifier + number_literal) )))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }\n                    ppcVar21 = (char **)FUN_000de200(0);\n                    return ppcVar21;\n                  }" { (if_statement "if (iVar13 != 0) {\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                      return ppcVar21;\n                    }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)()" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)FUN_000de200(0);" (assignment_expression "ppcVar21 = (char **)FUN_000de200(0)" identifier = (cast_expression "(char **)FUN_000de200(0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de200(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) }))) (if_statement "if (iVar13 == 0) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n                  return ppcVar21;\n                }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar8)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar8)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "*piVar8 = (int)piVar16;" (assignment_expression "*piVar8 = (int)piVar16" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8[1] = iVar13;" (assignment_expression "piVar8[1] = iVar13" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00158444)(ppcVar15)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(ppcVar15)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar15)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1);" (call_expression "(*(code *)PTR_memmove_001585b8)(iVar13,ppcVar15,iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,ppcVar15,iVar9 + 1)" ( identifier , identifier , (binary_expression "iVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "ppcVar21 = ppcVar15;" (assignment_expression "ppcVar21 = ppcVar15" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "unaff_s7 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) }))) (if_statement "if (iStack_fc == 0) {\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }" if (parenthesized_expression "(iStack_fc == 0)" ( (binary_expression "iStack_fc == 0" identifier == number_literal) )) (compound_statement "{\n              ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);\n              if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }\n              goto LAB_000de17c;\n            }" { (expression_statement "ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff);" (assignment_expression "ppcVar21 = glob_vector(pat,pcStack_f4,flags & 0xfffffdff)" identifier = (call_expression "glob_vector(pat,pcStack_f4,flags & 0xfffffdff)" identifier (argument_list "(pat,pcStack_f4,flags & 0xfffffdff)" ( identifier , identifier , (binary_expression "flags & 0xfffffdff" identifier & number_literal) )))) ;) (if_statement "if (ppcVar21 != (char **)0x0) {\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }" if (parenthesized_expression "(ppcVar21 != (char **)0x0)" ( (binary_expression "ppcVar21 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n                if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }\n              }" { (if_statement "if (*ppcVar21 != (char *)0x0) {\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }" if (parenthesized_expression "(*ppcVar21 != (char *)0x0)" ( (binary_expression "*ppcVar21 != (char *)0x0" (pointer_expression "*ppcVar21" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piStack_e0 = (int *)0x0;\n                  piVar8 = (int *)0x0;\n                  ppcVar15 = ppcVar21;\n                  do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }" { (expression_statement "piStack_e0 = (int *)0x0;" (assignment_expression "piStack_e0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar15 = ppcVar21;" (assignment_expression "ppcVar15 = ppcVar21" identifier = identifier) ;) (do_statement "do {\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  } while (*ppcVar15 != (char *)0x0);" do (compound_statement "{\n                    piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                    if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }\n                    if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }\n                    *piVar22 = (int)piStack_e0;\n                    piVar22[1] = (int)*ppcVar15;\n                    ppcVar15 = ppcVar15 + 1;\n                    piStack_e0 = piVar22;\n                  }" { (expression_statement "piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar22 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (piVar22 == (int *)0x0) {\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }" if (parenthesized_expression "(piVar22 == (int *)0x0)" ( (binary_expression "piVar22 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }\n                      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                      return ppcVar21;\n                    }" { (if_statement "if (piStack_e0 != (int *)0x0) {\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }" if (parenthesized_expression "(piStack_e0 != (int *)0x0)" ( (binary_expression "piStack_e0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n                        return ppcVar21;\n                      }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)()" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(ppcVar21)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(ppcVar21)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar21)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (piVar8 == (int *)0x0) {\n                      piVar8 = piVar22;\n                    }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      piVar8 = piVar22;\n                    }" { (expression_statement "piVar8 = piVar22;" (assignment_expression "piVar8 = piVar22" identifier = identifier) ;) })) (expression_statement "*piVar22 = (int)piStack_e0;" (assignment_expression "*piVar22 = (int)piStack_e0" (pointer_expression "*piVar22" * identifier) = (cast_expression "(int)piStack_e0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar22[1] = (int)*ppcVar15;" (assignment_expression "piVar22[1] = (int)*ppcVar15" (subscript_expression "piVar22[1]" identifier [ number_literal ]) = (cast_expression "(int)*ppcVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppcVar15" * identifier))) ;) (expression_statement "ppcVar15 = ppcVar15 + 1;" (assignment_expression "ppcVar15 = ppcVar15 + 1" identifier = (binary_expression "ppcVar15 + 1" identifier + number_literal)) ;) (expression_statement "piStack_e0 = piVar22;" (assignment_expression "piStack_e0 = piVar22" identifier = identifier) ;) }) while (parenthesized_expression "(*ppcVar15 != (char *)0x0)" ( (binary_expression "*ppcVar15 != (char *)0x0" (pointer_expression "*ppcVar15" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(ppcVar21)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(ppcVar21)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar21)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (ppcVar21 != (char **)PTR_glob_error_return_001573cc) {\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }" if (parenthesized_expression "(ppcVar21 != (char **)PTR_glob_error_return_001573cc)" ( (binary_expression "ppcVar21 != (char **)PTR_glob_error_return_001573cc" identifier != (cast_expression "(char **)PTR_glob_error_return_001573cc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) (compound_statement "{\n                  ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);\n                  return ppcVar21;\n                }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(ppcVar21)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(ppcVar21)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(ppcVar21)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar21)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) })) (goto_statement "goto LAB_000de17c;" goto statement_identifier ;) })) }) (else_clause "else {\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }" else (compound_statement "{\n            pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);\n            iStack_fc = (*pcVar7)(pcStack_f4,flags);\n            if (-1 < iStack_fc) goto LAB_000de13c;\n            if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }\n            if ((flags & 0x10U) == 0) goto LAB_000de658;\n          }" { (expression_statement "pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00);" (assignment_expression "pcStack_f4 = sh_makepath(dir,(char *)ppcVar15,flags_00)" identifier = (call_expression "sh_makepath(dir,(char *)ppcVar15,flags_00)" identifier (argument_list "(dir,(char *)ppcVar15,flags_00)" ( identifier , (cast_expression "(char *)ppcVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "iStack_fc = (*pcVar7)(pcStack_f4,flags);" (assignment_expression "iStack_fc = (*pcVar7)(pcStack_f4,flags)" identifier = (call_expression "(*pcVar7)(pcStack_f4,flags)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(pcStack_f4,flags)" ( identifier , identifier )))) ;) (if_statement "if (-1 < iStack_fc) goto LAB_000de13c;" if (parenthesized_expression "(-1 < iStack_fc)" ( (binary_expression "-1 < iStack_fc" number_literal < identifier) )) (goto_statement "goto LAB_000de13c;" goto statement_identifier ;)) (if_statement "if ((flags & 8U) != 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }" if (parenthesized_expression "((flags & 8U) != 0)" ( (binary_expression "(flags & 8U) != 0" (parenthesized_expression "(flags & 8U)" ( (binary_expression "flags & 8U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n              return ppcVar21;\n            }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if ((flags & 0x10U) == 0) goto LAB_000de658;" if (parenthesized_expression "((flags & 0x10U) == 0)" ( (binary_expression "(flags & 0x10U) == 0" (parenthesized_expression "(flags & 0x10U)" ( (binary_expression "flags & 0x10U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000de658;" goto statement_identifier ;)) }))) (if_statement "if ((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }" if (parenthesized_expression "((iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0))" ( (binary_expression "(iStack_fc == -2) && (iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)" (parenthesized_expression "(iStack_fc == -2)" ( (binary_expression "iStack_fc == -2" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0)" ( (comma_expression "iVar4 = (*pcVar7)(pcStack_f4,0), iVar4 == 0" (assignment_expression "iVar4 = (*pcVar7)(pcStack_f4,0)" identifier = (call_expression "(*pcVar7)(pcStack_f4,0)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(pcStack_f4,0)" ( identifier , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (labeled_statement "LAB_000de17c:\n          puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);" statement_identifier : (expression_statement "puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "puVar11 = (undefined4 *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;)) (expression_statement "iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_00158444)(pcStack_f4)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier )))) ;) (expression_statement "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1);" (assignment_expression "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + 1)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (if_statement "if (puVar11 != (undefined4 *)0x0) {\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }" if (parenthesized_expression "(puVar11 != (undefined4 *)0x0)" ( (binary_expression "puVar11 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }\n            *puVar11 = piVar16;\n            puVar11[1] = iVar13;\n            (*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);\n            return ppcVar21;\n          }" { (if_statement "if (iVar13 == 0) {\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);\n              return ppcVar21;\n            }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(puVar11)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(puVar11)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(puVar11)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "*puVar11 = piVar16;" (assignment_expression "*puVar11 = piVar16" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar11[1] = iVar13;" (assignment_expression "puVar11[1] = iVar13" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_001585b8)(iVar13,pcStack_f4,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,pcStack_f4,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (iVar13 != 0) {\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n            return ppcVar21;\n          }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(iVar13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(iVar13)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcStack_f4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcStack_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcStack_f4)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) (expression_statement "ppcVar21 = (char **)0x0;" (assignment_expression "ppcVar21 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "iVar13 = glob_testdir(dir,0);" (assignment_expression "iVar13 = glob_testdir(dir,0)" identifier = (call_expression "glob_testdir(dir,0)" identifier (argument_list "(dir,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar13 < 0) {\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        ppcVar21 = (char **)FUN_000de910(dir);\n        return ppcVar21;\n      }" { (expression_statement "ppcVar21 = (char **)FUN_000de910(dir);" (assignment_expression "ppcVar21 = (char **)FUN_000de910(dir)" identifier = (cast_expression "(char **)FUN_000de910(dir)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_000de910(dir)" identifier (argument_list "(dir)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "flags = (*(code *)PTR_strlen_00158444)();" (assignment_expression "flags = (*(code *)PTR_strlen_00158444)()" identifier = (call_expression "(*(code *)PTR_strlen_00158444)()" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2);" (assignment_expression "iVar13 = (*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar4 + flags + 2)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4 + flags + 2)" ( (binary_expression "iVar4 + flags + 2" (binary_expression "iVar4 + flags" identifier + identifier) + number_literal) )))) ;) (expression_statement "pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0015849c)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }\n        (*(code *)PTR_strcpy_001584cc)(pcVar12);\n        dequote_pathname(pcVar12);\n        (*(code *)PTR_strcpy_001584cc)(iVar13,dir);\n        *(undefined1 *)(iVar13 + flags) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);\n        iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);\n        if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);\n        return ppcVar21;\n      }" { (if_statement "if (pcVar12 == (char *)0x0) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);\n          return ppcVar21;\n        }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13,pat)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(iVar13,pat)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(iVar13,pat)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,pat)" ( identifier , identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "(*(code *)PTR_strcpy_001584cc)(pcVar12);" (call_expression "(*(code *)PTR_strcpy_001584cc)(pcVar12)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12)" ( identifier ))) ;) (expression_statement "dequote_pathname(pcVar12);" (call_expression "dequote_pathname(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)(iVar13,dir);" (call_expression "(*(code *)PTR_strcpy_001584cc)(iVar13,dir)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,dir)" ( identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(iVar13 + flags) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar13 + flags) = 0x2f" (pointer_expression "*(undefined1 *)(iVar13 + flags)" * (cast_expression "(undefined1 *)(iVar13 + flags)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + flags)" ( (binary_expression "iVar13 + flags" identifier + identifier) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12);" (call_expression "(*(code *)PTR_strcpy_001584cc)(iVar13 + flags + 1,pcVar12)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13 + flags + 1,pcVar12)" ( (binary_expression "iVar13 + flags + 1" (binary_expression "iVar13 + flags" identifier + identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo);" (assignment_expression "iVar4 = (*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo)" identifier = (call_expression "(*(code *)PTR___lxstat64_001582c8)(3,iVar13,&finfo)" (parenthesized_expression "(*(code *)PTR___lxstat64_001582c8)" ( (pointer_expression "*(code *)PTR___lxstat64_001582c8" * (cast_expression "(code *)PTR___lxstat64_001582c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,iVar13,&finfo)" ( number_literal , identifier , (pointer_expression "&finfo" & identifier) )))) ;) (if_statement "if (-1 < iVar4) {\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n          ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();\n          return ppcVar21;\n        }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)();" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)()" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(iVar13)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(iVar13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(iVar13)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (pcVar12 != (char *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);\n        return ppcVar21;\n      }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(pcVar12)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(pcVar12)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(pcVar12)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) })) (labeled_statement "LAB_000ddefc:\n    puVar27 = puVar5;" statement_identifier : (expression_statement "puVar27 = puVar5;" (assignment_expression "puVar27 = puVar5" identifier = identifier) ;)) (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_000ddf00:\n  piVar16 = piVar8;" statement_identifier : (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" identifier = identifier) ;)) (if_statement "if (bVar1) {\nLAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)0x0;\n    piVar8 = (int *)0x0;\n  }\n  else {\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)0x0;\n    piVar8 = (int *)0x0;\n  }" { (labeled_statement "LAB_000ddf10:\n    if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }" statement_identifier : (if_statement "if (piVar16 != (int *)0x0) {\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n      return ppcVar21;\n    }" { (if_statement "if (piVar22 != (int *)0x0) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }" if (parenthesized_expression "(piVar22 != (int *)0x0)" ( (binary_expression "piVar22 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);\n        return ppcVar21;\n      }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1])" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar16[1])" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar16[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar16[1])" ( (subscript_expression "piVar16[1]" identifier [ number_literal ]) ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1]);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar16[1])" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar16[1])" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar16[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar16[1])" ( (subscript_expression "piVar16[1]" identifier [ number_literal ]) ))))) ;) (return_statement "return ppcVar21;" return identifier ;) }))) (expression_statement "ppcVar15 = (char **)0x0;" (assignment_expression "ppcVar15 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }" else (compound_statement "{\n    pat = (char *)((uVar23 + 1) * 4);\n    ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);\n    if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;\n    if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }\n    pat = (char *)(ppcVar15 + uVar23 + 1);\n    *(char **)((int)pat + -4) = (char *)0x0;\n    if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }\n  }" { (expression_statement "pat = (char *)((uVar23 + 1) * 4);" (assignment_expression "pat = (char *)((uVar23 + 1) * 4)" identifier = (cast_expression "(char *)((uVar23 + 1) * 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar23 + 1) * 4)" ( (binary_expression "(uVar23 + 1) * 4" (parenthesized_expression "(uVar23 + 1)" ( (binary_expression "uVar23 + 1" identifier + number_literal) )) * number_literal) )))) ;) (expression_statement "ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat);" (assignment_expression "ppcVar15 = (char **)(*(code *)PTR_malloc_0015849c)(pat)" identifier = (cast_expression "(char **)(*(code *)PTR_malloc_0015849c)(pat)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_malloc_0015849c)(pat)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pat)" ( identifier ))))) ;) (if_statement "if (ppcVar15 == (char **)0x0) goto LAB_000ddf10;" if (parenthesized_expression "(ppcVar15 == (char **)0x0)" ( (binary_expression "ppcVar15 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;)) (if_statement "if (uVar23 != 0) {\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n      ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);\n      ppcVar10 = ppcVar15;\n      do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);\n    }" { (expression_statement "ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15);" (assignment_expression "ppcVar21 = (char **)((int)((int)pat + -4) + (int)ppcVar15)" identifier = (cast_expression "(char **)((int)((int)pat + -4) + (int)ppcVar15)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)pat + -4) + (int)ppcVar15)" ( (binary_expression "(int)((int)pat + -4) + (int)ppcVar15" (cast_expression "(int)((int)pat + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pat + -4)" ( (binary_expression "(int)pat + -4" (cast_expression "(int)pat" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppcVar10 = ppcVar15;" (assignment_expression "ppcVar10 = ppcVar15" identifier = identifier) ;) (do_statement "do {\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      } while (ppcVar21 != ppcVar10);" do (compound_statement "{\n        *ppcVar10 = (char *)piVar16[1];\n        ppcVar10 = ppcVar10 + 1;\n        piVar16 = (int *)*piVar16;\n      }" { (expression_statement "*ppcVar10 = (char *)piVar16[1];" (assignment_expression "*ppcVar10 = (char *)piVar16[1]" (pointer_expression "*ppcVar10" * identifier) = (cast_expression "(char *)piVar16[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "ppcVar10 = ppcVar10 + 1;" (assignment_expression "ppcVar10 = ppcVar10 + 1" identifier = (binary_expression "ppcVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;) }) while (parenthesized_expression "(ppcVar21 != ppcVar10)" ( (binary_expression "ppcVar21 != ppcVar10" identifier != identifier) )) ;) })) (expression_statement "pat = (char *)(ppcVar15 + uVar23 + 1);" (assignment_expression "pat = (char *)(ppcVar15 + uVar23 + 1)" identifier = (cast_expression "(char *)(ppcVar15 + uVar23 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppcVar15 + uVar23 + 1)" ( (binary_expression "ppcVar15 + uVar23 + 1" (binary_expression "ppcVar15 + uVar23" identifier + identifier) + number_literal) )))) ;) (expression_statement "*(char **)((int)pat + -4) = (char *)0x0;" (assignment_expression "*(char **)((int)pat + -4) = (char *)0x0" (pointer_expression "*(char **)((int)pat + -4)" * (cast_expression "(char **)((int)pat + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pat + -4)" ( (binary_expression "(int)pat + -4" (cast_expression "(int)pat" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)) {\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }" if (parenthesized_expression "((piVar22 != (int *)0x0) && (piVar8 != (int *)0x0))" ( (binary_expression "(piVar22 != (int *)0x0) && (piVar8 != (int *)0x0)" (parenthesized_expression "(piVar22 != (int *)0x0)" ( (binary_expression "piVar22 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }\n      ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);\n      return ppcVar21;\n    }" { (if_statement "if (piVar8 == piVar22) {\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }" if (parenthesized_expression "(piVar8 == piVar22)" ( (binary_expression "piVar8 == piVar22" identifier == identifier) )) (compound_statement "{\n        ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);\n        return ppcVar21;\n      }" { (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar22)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar22)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar22)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar22)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8);" (assignment_expression "ppcVar21 = (char **)(*(code *)PTR_free_001585ac)(piVar8)" identifier = (cast_expression "(char **)(*(code *)PTR_free_001585ac)(piVar8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_free_001585ac)(piVar8)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar8)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) }))) (if_statement "if (pcVar3 == *(char **)PTR___stack_chk_guard_0015858c) {\n    return ppcVar15;\n  }" if (parenthesized_expression "(pcVar3 == *(char **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "pcVar3 == *(char **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return ppcVar15;\n  }" { (return_statement "return ppcVar15;" return identifier ;) })) (expression_statement "pcVar28 = glob_filename;" (assignment_expression "pcVar28 = glob_filename" identifier = identifier) ;) (expression_statement "puVar25 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar27 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar27 + -4) = pcVar28" (pointer_expression "*(code **)(puVar27 + -4)" * (cast_expression "(code **)(puVar27 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -4)" ( (binary_expression "puVar27 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar27 + -8) = auStack_128;" (assignment_expression "*(undefined1 **)(puVar27 + -8) = auStack_128" (pointer_expression "*(undefined1 **)(puVar27 + -8)" * (cast_expression "(undefined1 **)(puVar27 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0xc) = unaff_s7;" (assignment_expression "*(int **)(puVar27 + -0xc) = unaff_s7" (pointer_expression "*(int **)(puVar27 + -0xc)" * (cast_expression "(int **)(puVar27 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x10) = unaff_s6;" (assignment_expression "*(int **)(puVar27 + -0x10) = unaff_s6" (pointer_expression "*(int **)(puVar27 + -0x10)" * (cast_expression "(int **)(puVar27 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar27 + -0x14) = uVar23;" (assignment_expression "*(uint *)(puVar27 + -0x14) = uVar23" (pointer_expression "*(uint *)(puVar27 + -0x14)" * (cast_expression "(uint *)(puVar27 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x14)" ( (binary_expression "puVar27 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar27 + -0x18) = flags;" (assignment_expression "*(int *)(puVar27 + -0x18) = flags" (pointer_expression "*(int *)(puVar27 + -0x18)" * (cast_expression "(int *)(puVar27 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x18)" ( (binary_expression "puVar27 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar27 + -0x1c) = pat;" (assignment_expression "*(char **)(puVar27 + -0x1c) = pat" (pointer_expression "*(char **)(puVar27 + -0x1c)" * (cast_expression "(char **)(puVar27 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x1c)" ( (binary_expression "puVar27 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x20) = piVar22;" (assignment_expression "*(int **)(puVar27 + -0x20) = piVar22" (pointer_expression "*(int **)(puVar27 + -0x20)" * (cast_expression "(int **)(puVar27 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x20)" ( (binary_expression "puVar27 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char ***)(puVar27 + -0x24) = ppcVar15;" (assignment_expression "*(char ***)(puVar27 + -0x24) = ppcVar15" (pointer_expression "*(char ***)(puVar27 + -0x24)" * (cast_expression "(char ***)(puVar27 + -0x24)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar27 + -0x24)" ( (binary_expression "puVar27 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x28) = piVar8;" (assignment_expression "*(int **)(puVar27 + -0x28) = piVar8" (pointer_expression "*(int **)(puVar27 + -0x28)" * (cast_expression "(int **)(puVar27 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x28)" ( (binary_expression "puVar27 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c;" (assignment_expression "*(undefined **)(puVar27 + -0x50) = puVar25 + 0x7fb4c" (pointer_expression "*(undefined **)(puVar27 + -0x50)" * (cast_expression "(undefined **)(puVar27 + -0x50)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) = (binary_expression "puVar25 + 0x7fb4c" identifier + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4);" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar25 + 0x79aa8))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar25 + 0x79aa8))(4)" (parenthesized_expression "(**(code **)(puVar25 + 0x79aa8))" ( (pointer_expression "**(code **)(puVar25 + 0x79aa8)" * (pointer_expression "*(code **)(puVar25 + 0x79aa8)" * (cast_expression "(code **)(puVar25 + 0x79aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x79aa8)" ( (binary_expression "puVar25 + 0x79aa8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (puVar11 == (undefined4 *)0x0) {\n    return (char **)0x0;\n  }" if (parenthesized_expression "(puVar11 == (undefined4 *)0x0)" ( (binary_expression "puVar11 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (char **)0x0;\n  }" { (return_statement "return (char **)0x0;" return (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ;) })) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f);" (assignment_expression "pcVar12 = (char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f)" identifier = (cast_expression "(char *)(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar4 + -0x61d4))(pcVar3,0x2f)" (parenthesized_expression "(**(code **)(iVar4 + -0x61d4))" ( (pointer_expression "**(code **)(iVar4 + -0x61d4)" * (pointer_expression "*(code **)(iVar4 + -0x61d4)" * (cast_expression "(code **)(iVar4 + -0x61d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x61d4)" ( (binary_expression "iVar4 + -0x61d4" identifier + number_literal) ))))) )) (argument_list "(pcVar3,0x2f)" ( identifier , number_literal ))))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\nLAB_000deb88:\n    bVar1 = false;\n    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    pcVar24 = (char *)0x0;\n  }\n  else {\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000deb88:\n    bVar1 = false;\n    __pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    pcVar24 = (char *)0x0;\n  }" { (labeled_statement "LAB_000deb88:\n    bVar1 = false;" statement_identifier : (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;)) (expression_statement "__pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0);" (assignment_expression "__pattern = (char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0)" identifier = (cast_expression "(char *)(*(int *)(iVar4 + -0x7f90) + -0x47a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + -0x7f90) + -0x47a0)" ( (binary_expression "*(int *)(iVar4 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar4 + -0x7f90)" * (cast_expression "(int *)(iVar4 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0x7f90)" ( (binary_expression "iVar4 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_000deb94:\n    if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }" statement_identifier : (if_statement "if (*pcVar3 != '\0') {\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }" if (parenthesized_expression "(*pcVar3 != '\0')" ( (binary_expression "*pcVar3 != '\0'" (pointer_expression "*pcVar3" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();\n      return ppcVar21;\n    }" { (expression_statement "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))();" (assignment_expression "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))()" identifier = (cast_expression "(char **)(**(code **)(iVar4 + -0x5f94))()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(iVar4 + -0x5f94))()" (parenthesized_expression "(**(code **)(iVar4 + -0x5f94))" ( (pointer_expression "**(code **)(iVar4 + -0x5f94)" * (pointer_expression "*(code **)(iVar4 + -0x5f94)" * (cast_expression "(code **)(iVar4 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x5f94)" ( (binary_expression "iVar4 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (return_statement "return ppcVar21;" return identifier ;) }))) (expression_statement "ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8);" (assignment_expression "ppcVar15 = (char **)(**(code **)(iVar4 + -0x6098))(puVar11,8)" identifier = (cast_expression "(char **)(**(code **)(iVar4 + -0x6098))(puVar11,8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(iVar4 + -0x6098))(puVar11,8)" (parenthesized_expression "(**(code **)(iVar4 + -0x6098))" ( (pointer_expression "**(code **)(iVar4 + -0x6098)" * (pointer_expression "*(code **)(iVar4 + -0x6098)" * (cast_expression "(code **)(iVar4 + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x6098)" ( (binary_expression "iVar4 + -0x6098" identifier + number_literal) ))))) )) (argument_list "(puVar11,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (ppcVar15 == (char **)0x0) {\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }" if (parenthesized_expression "(ppcVar15 == (char **)0x0)" ( (binary_expression "ppcVar15 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      if (!bVar1) {\n        return (char **)0x0;\n      }\nLAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);\n      return ppcVar21;\n    }" { (if_statement "if (!bVar1) {\n        return (char **)0x0;\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        return (char **)0x0;\n      }" { (return_statement "return (char **)0x0;" return (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ;) })) (labeled_statement "LAB_000df3a4:\n      ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);" statement_identifier : (expression_statement "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern);" (assignment_expression "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(__pattern)" identifier = (cast_expression "(char **)(**(code **)(iVar4 + -0x5f94))(__pattern)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(iVar4 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar4 + -0x5f94))" ( (pointer_expression "**(code **)(iVar4 + -0x5f94)" * (pointer_expression "*(code **)(iVar4 + -0x5f94)" * (cast_expression "(code **)(iVar4 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x5f94)" ( (binary_expression "iVar4 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))))) ;)) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }" else (compound_statement "{\n    if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }\n    pcVar24 = pcVar12 + (1 - (int)pcVar3);\n    __pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));\n    if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    pcVar20 = pcVar3;\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    __pattern[(int)pcVar24] = '\0';\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }\n    iVar13 = glob_pattern_p(__pattern,(int)pcVar20);\n    if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }\n    if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }\n    ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);\n    iVar4 = *(int *)(puVar27 + -0x50);\n    if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;\n    if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }\n  }" { (if_statement "if (**(int **)(iVar4 + -0x7bf8) != 0) {\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }" if (parenthesized_expression "(**(int **)(iVar4 + -0x7bf8) != 0)" ( (binary_expression "**(int **)(iVar4 + -0x7bf8) != 0" (pointer_expression "**(int **)(iVar4 + -0x7bf8)" * (pointer_expression "*(int **)(iVar4 + -0x7bf8)" * (cast_expression "(int **)(iVar4 + -0x7bf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x7bf8)" ( (binary_expression "iVar4 + -0x7bf8" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n      pcVar12 = glob_dirscan(pcVar3,0x2f);\n      iVar4 = *(int *)(puVar27 + -0x50);\n      if (pcVar12 == (char *)0x0) goto LAB_000deb88;\n    }" { (expression_statement "pcVar12 = glob_dirscan(pcVar3,0x2f);" (assignment_expression "pcVar12 = glob_dirscan(pcVar3,0x2f)" identifier = (call_expression "glob_dirscan(pcVar3,0x2f)" identifier (argument_list "(pcVar3,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_000deb88;" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000deb88;" goto statement_identifier ;)) })) (expression_statement "pcVar24 = pcVar12 + (1 - (int)pcVar3);" (assignment_expression "pcVar24 = pcVar12 + (1 - (int)pcVar3)" identifier = (binary_expression "pcVar12 + (1 - (int)pcVar3)" identifier + (parenthesized_expression "(1 - (int)pcVar3)" ( (binary_expression "1 - (int)pcVar3" number_literal - (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "__pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3));" (assignment_expression "__pattern = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3))" identifier = (cast_expression "(char *)(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar4 + -0x60a4))(pcVar12 + (2 - (int)pcVar3))" (parenthesized_expression "(**(code **)(iVar4 + -0x60a4))" ( (pointer_expression "**(code **)(iVar4 + -0x60a4)" * (pointer_expression "*(code **)(iVar4 + -0x60a4)" * (cast_expression "(code **)(iVar4 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x60a4)" ( (binary_expression "iVar4 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(pcVar12 + (2 - (int)pcVar3))" ( (binary_expression "pcVar12 + (2 - (int)pcVar3)" identifier + (parenthesized_expression "(2 - (int)pcVar3)" ( (binary_expression "2 - (int)pcVar3" number_literal - (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))))) ;) (if_statement "if (__pattern == (char *)0x0) {\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\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      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }" { (expression_statement "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);" (assignment_expression "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" identifier = (cast_expression "(char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar11)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "pcVar20 = pcVar3;" (assignment_expression "pcVar20 = pcVar3" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar3,pcVar24)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5fac" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern,pcVar3,pcVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "__pattern[(int)pcVar24] = '\0';" (assignment_expression "__pattern[(int)pcVar24] = '\0'" (subscript_expression "__pattern[(int)pcVar24]" identifier [ (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }" if (parenthesized_expression "(pcVar24 == (char *)0x0)" ( (binary_expression "pcVar24 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = true;\n      pcVar3 = pcVar12 + 1;\n      goto LAB_000deb94;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar3 = pcVar12 + 1;" (assignment_expression "pcVar3 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000deb94;" goto statement_identifier ;) })) (expression_statement "iVar13 = glob_pattern_p(__pattern,(int)pcVar20);" (assignment_expression "iVar13 = glob_pattern_p(__pattern,(int)pcVar20)" identifier = (call_expression "glob_pattern_p(__pattern,(int)pcVar20)" identifier (argument_list "(__pattern,(int)pcVar20)" ( identifier , (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar13 == 1) {\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }" if (parenthesized_expression "(iVar13 == 1)" ( (binary_expression "iVar13 == 1" identifier == number_literal) )) (compound_statement "{\n      uVar23 = (uint)ppcVar21 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;\n      pcVar3 = __pattern;\n      if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }\n      ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);\n      *(char ***)(puVar27 + -0x30) = ppcVar21;\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      return ppcVar21;\n    }" { (expression_statement "uVar23 = (uint)ppcVar21 & 0xfffffffe;" (assignment_expression "uVar23 = (uint)ppcVar21 & 0xfffffffe" identifier = (binary_expression "(uint)ppcVar21 & 0xfffffffe" (cast_expression "(uint)ppcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400;" (assignment_expression "*(uint *)(puVar27 + -0x44) = (uint)ppcVar21 & 0x400" (pointer_expression "*(uint *)(puVar27 + -0x44)" * (cast_expression "(uint *)(puVar27 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) )))) = (binary_expression "(uint)ppcVar21 & 0x400" (cast_expression "(uint)ppcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar3 = __pattern;" (assignment_expression "pcVar3 = __pattern" identifier = identifier) ;) (if_statement "if (((uint)ppcVar21 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }" if (parenthesized_expression "(((uint)ppcVar21 & 0x400) == 0)" ( (binary_expression "((uint)ppcVar21 & 0x400) == 0" (parenthesized_expression "((uint)ppcVar21 & 0x400)" ( (binary_expression "(uint)ppcVar21 & 0x400" (cast_expression "(uint)ppcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44)" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar27 + -0x44)" * (cast_expression "(undefined4 *)(puVar27 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }" else (compound_statement "{\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        pcVar18 = pcVar24;\n        pcVar20 = pcVar24;\n        if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }\n        bVar1 = pcVar20 != pcVar24;\n        pcVar24 = pcVar18;\n        if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }\n      }" { (if_statement "if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" if (parenthesized_expression "(*__pattern == '*')" ( (binary_expression "*__pattern == '*'" (pointer_expression "*__pattern" * identifier) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n          if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }" { (if_statement "if (__pattern[1] == '*') {\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" if (parenthesized_expression "(__pattern[1] == '*')" ( (binary_expression "__pattern[1] == '*'" (subscript_expression "__pattern[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n            pcVar20 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }" { (expression_statement "pcVar20 = __pattern;" (assignment_expression "pcVar20 = __pattern" identifier = identifier) ;) (if_statement "if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" if (parenthesized_expression "((__pattern[2] == '/') || (__pattern[2] == '\0'))" ( (binary_expression "(__pattern[2] == '/') || (__pattern[2] == '\0')" (parenthesized_expression "(__pattern[2] == '/')" ( (binary_expression "__pattern[2] == '/'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(__pattern[2] == '\0')" ( (binary_expression "__pattern[2] == '\0'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');\n              cVar2 = *pcVar20;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);\n              uVar23 = uVar23 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }" { (do_statement "do {\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              } while (*pcVar20 == '*');" do (compound_statement "{\n                pcVar24 = pcVar20;\n                pcVar20 = pcVar24;\n                if (pcVar24[1] != '*') break;\n                if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }\n                pcVar3 = pcVar24;\n              }" { (expression_statement "pcVar24 = pcVar20;" (assignment_expression "pcVar24 = pcVar20" identifier = identifier) ;) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (if_statement "if (pcVar24[1] != '*') break;" if (parenthesized_expression "(pcVar24[1] != '*')" ( (binary_expression "pcVar24[1] != '*'" (subscript_expression "pcVar24[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (pcVar24[2] == '/') {\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar24[2] == '/')" ( (binary_expression "pcVar24[2] == '/'" (subscript_expression "pcVar24[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  pcVar20 = pcVar24 + 3;\n                  cVar2 = pcVar24[3];\n                  while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }\n                  pcVar3 = pcVar24;\n                  if (cVar2 == '\0') break;\n                }" { (expression_statement "pcVar20 = pcVar24 + 3;" (assignment_expression "pcVar20 = pcVar24 + 3" identifier = (binary_expression "pcVar24 + 3" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar24[3];" (assignment_expression "cVar2 = pcVar24[3]" identifier = (subscript_expression "pcVar24[3]" identifier [ number_literal ])) ;) (while_statement "while (cVar2 == '/') {\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }" while (parenthesized_expression "(cVar2 == '/')" ( (binary_expression "cVar2 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar20 = pcVar20 + 1;\n                    cVar2 = *pcVar20;\n                  }" { (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar20;" (assignment_expression "cVar2 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) })) (expression_statement "pcVar3 = pcVar24;" (assignment_expression "pcVar3 = pcVar24" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') break;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }) (else_clause "else if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }" else (if_statement "if (pcVar24[2] != '\0') {\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar24[2] != '\0')" ( (binary_expression "pcVar24[2] != '\0'" (subscript_expression "pcVar24[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  cVar2 = *pcVar24;\n                  goto LAB_000dedb8;\n                }" { (expression_statement "cVar2 = *pcVar24;" (assignment_expression "cVar2 = *pcVar24" identifier = (pointer_expression "*pcVar24" * identifier)) ;) (goto_statement "goto LAB_000dedb8;" goto statement_identifier ;) })))) (expression_statement "pcVar3 = pcVar24;" (assignment_expression "pcVar3 = pcVar24" identifier = identifier) ;) }) while (parenthesized_expression "(*pcVar20 == '*')" ( (binary_expression "*pcVar20 == '*'" (pointer_expression "*pcVar20" * identifier) == (char_literal "'*'" ' character ')) )) ;) (expression_statement "cVar2 = *pcVar20;" (assignment_expression "cVar2 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) (labeled_statement "LAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;" statement_identifier : (expression_statement "*(int *)(puVar27 + -0x40) = (int)cVar2;" (assignment_expression "*(int *)(puVar27 + -0x40) = (int)cVar2" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) = (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);" (assignment_expression "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0)" (pointer_expression "*(uint *)(puVar27 + -0x48)" * (cast_expression "(uint *)(puVar27 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(cVar2 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar2 == 0)" ( (binary_expression "cVar2 == 0" identifier == number_literal) )))) ;) (expression_statement "pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3);" (assignment_expression "pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3)" identifier = (cast_expression "(char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar3)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pcVar3)" ( identifier ))))) ;) (expression_statement "uVar23 = uVar23 | 0x210;" (assignment_expression "uVar23 = uVar23 | 0x210" identifier = (binary_expression "uVar23 | 0x210" identifier | number_literal)) ;) (if_statement "if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;" if (parenthesized_expression "(*(int *)(puVar27 + -0x40) == 0)" ( (binary_expression "*(int *)(puVar27 + -0x40) == 0" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) }) (else_clause "else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" else (compound_statement "{\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "pcVar18 = pcVar24;" (assignment_expression "pcVar18 = pcVar24" identifier = identifier) ;) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (if_statement "if (3 < (int)pcVar24) {\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }" if (parenthesized_expression "(3 < (int)pcVar24)" ( (binary_expression "3 < (int)pcVar24" number_literal < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;\n          pcVar14 = pcVar3 + (int)(pcVar24 + -6);\n          while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }\n        }" { (if_statement "if (((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')) goto LAB_000dee6c;" if (parenthesized_expression "(((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*'))" ( (binary_expression "((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')) ||\n             (pcVar3[(int)(pcVar24 + -3)] != '*')" (parenthesized_expression "((pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*'))" ( (binary_expression "(pcVar3[(int)(pcVar24 + -1)] != '/') || (pcVar3[(int)(pcVar24 + -2)] != '*')" (parenthesized_expression "(pcVar3[(int)(pcVar24 + -1)] != '/')" ( (binary_expression "pcVar3[(int)(pcVar24 + -1)] != '/'" (subscript_expression "pcVar3[(int)(pcVar24 + -1)]" identifier [ (cast_expression "(int)(pcVar24 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -1)" ( (binary_expression "pcVar24 + -1" identifier + number_literal) ))) ]) != (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(pcVar3[(int)(pcVar24 + -2)] != '*')" ( (binary_expression "pcVar3[(int)(pcVar24 + -2)] != '*'" (subscript_expression "pcVar3[(int)(pcVar24 + -2)]" identifier [ (cast_expression "(int)(pcVar24 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -2)" ( (binary_expression "pcVar24 + -2" identifier + number_literal) ))) ]) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "(pcVar3[(int)(pcVar24 + -3)] != '*')" ( (binary_expression "pcVar3[(int)(pcVar24 + -3)] != '*'" (subscript_expression "pcVar3[(int)(pcVar24 + -3)]" identifier [ (cast_expression "(int)(pcVar24 + -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -3)" ( (binary_expression "pcVar24 + -3" identifier + number_literal) ))) ]) != (char_literal "'*'" ' character ')) ))) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) (expression_statement "pcVar14 = pcVar3 + (int)(pcVar24 + -6);" (assignment_expression "pcVar14 = pcVar3 + (int)(pcVar24 + -6)" identifier = (binary_expression "pcVar3 + (int)(pcVar24 + -6)" identifier + (cast_expression "(int)(pcVar24 + -6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -6)" ( (binary_expression "pcVar24 + -6" identifier + number_literal) ))))) ;) (while_statement "while ((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))) {\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }" while (parenthesized_expression "((pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20)))" ( (parenthesized_expression "(pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20))" ( (comma_expression "pcVar17 = pcVar20, pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20)" (assignment_expression "pcVar17 = pcVar20" identifier = identifier) , (comma_expression "pcVar20 = pcVar17, pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20)" (assignment_expression "pcVar20 = pcVar17" identifier = identifier) , (binary_expression "pcVar14[2] == '/' &&\n                 (pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20)" (binary_expression "pcVar14[2] == '/'" (subscript_expression "pcVar14[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20)" ( (comma_expression "pcVar20 = pcVar17 + -3, pcVar18 = pcVar17, 3 < (int)pcVar20" (assignment_expression "pcVar20 = pcVar17 + -3" identifier = (binary_expression "pcVar17 + -3" identifier + number_literal)) , (comma_expression "pcVar18 = pcVar17, 3 < (int)pcVar20" (assignment_expression "pcVar18 = pcVar17" identifier = identifier) , (binary_expression "3 < (int)pcVar20" number_literal < (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ))))) )) )) (compound_statement "{\n            if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;\n          }" { (if_statement "if ((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))\n            break;" if (parenthesized_expression "((pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'))" ( (binary_expression "(pcVar14[1] != '*') || (cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*')" (parenthesized_expression "(pcVar14[1] != '*')" ( (binary_expression "pcVar14[1] != '*'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) || (parenthesized_expression "(cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*')" ( (comma_expression "cVar2 = *pcVar14, pcVar14 = pcVar14 + -3, cVar2 != '*'" (assignment_expression "cVar2 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) , (comma_expression "pcVar14 = pcVar14 + -3, cVar2 != '*'" (assignment_expression "pcVar14 = pcVar14 + -3" identifier = (binary_expression "pcVar14 + -3" identifier + number_literal)) , (binary_expression "cVar2 != '*'" identifier != (char_literal "'*'" ' character ')))) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "bVar1 = pcVar20 != pcVar24;" (assignment_expression "bVar1 = pcVar20 != pcVar24" identifier = (binary_expression "pcVar20 != pcVar24" identifier != identifier)) ;) (expression_statement "pcVar24 = pcVar18;" (assignment_expression "pcVar24 = pcVar18" identifier = identifier) ;) (if_statement "if ((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))) {\n          pcVar24 = pcVar18 + -3;\n        }" if (parenthesized_expression "((((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0'))))" ( (binary_expression "(((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')) &&\n           ((pcVar12[2] == '*' && (pcVar12[3] == '\0')))" (parenthesized_expression "(((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*'))" ( (binary_expression "((bVar1) && ((char *)0x4 < pcVar18)) && (pcVar12[1] == '*')" (parenthesized_expression "((bVar1) && ((char *)0x4 < pcVar18))" ( (binary_expression "(bVar1) && ((char *)0x4 < pcVar18)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "((char *)0x4 < pcVar18)" ( (binary_expression "(char *)0x4 < pcVar18" (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) && (parenthesized_expression "(pcVar12[1] == '*')" ( (binary_expression "pcVar12[1] == '*'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "((pcVar12[2] == '*' && (pcVar12[3] == '\0')))" ( (parenthesized_expression "(pcVar12[2] == '*' && (pcVar12[3] == '\0'))" ( (binary_expression "pcVar12[2] == '*' && (pcVar12[3] == '\0')" (binary_expression "pcVar12[2] == '*'" (subscript_expression "pcVar12[2]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) && (parenthesized_expression "(pcVar12[3] == '\0')" ( (binary_expression "pcVar12[3] == '\0'" (subscript_expression "pcVar12[3]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          pcVar24 = pcVar18 + -3;\n        }" { (expression_statement "pcVar24 = pcVar18 + -3;" (assignment_expression "pcVar24 = pcVar18 + -3" identifier = (binary_expression "pcVar18 + -3" identifier + number_literal)) ;) })) }))) (labeled_statement "LAB_000dee6c:\n      if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }" statement_identifier : (if_statement "if (pcVar3[(int)(pcVar24 + -1)] == '/') {\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }" if (parenthesized_expression "(pcVar3[(int)(pcVar24 + -1)] == '/')" ( (binary_expression "pcVar3[(int)(pcVar24 + -1)] == '/'" (subscript_expression "pcVar3[(int)(pcVar24 + -1)]" identifier [ (cast_expression "(int)(pcVar24 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -1)" ( (binary_expression "pcVar24 + -1" identifier + number_literal) ))) ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        pcVar3[(int)(pcVar24 + -1)] = '\0';\n      }" { (expression_statement "pcVar3[(int)(pcVar24 + -1)] = '\0';" (assignment_expression "pcVar3[(int)(pcVar24 + -1)] = '\0'" (subscript_expression "pcVar3[(int)(pcVar24 + -1)]" identifier [ (cast_expression "(int)(pcVar24 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar24 + -1)" ( (binary_expression "pcVar24 + -1" identifier + number_literal) ))) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800);" (assignment_expression "ppcVar21 = glob_filename(pcVar3,uVar23 | 0x800)" identifier = (call_expression "glob_filename(pcVar3,uVar23 | 0x800)" identifier (argument_list "(pcVar3,uVar23 | 0x800)" ( identifier , (binary_expression "uVar23 | 0x800" identifier | number_literal) )))) ;) (expression_statement "*(char ***)(puVar27 + -0x30) = ppcVar21;" (assignment_expression "*(char ***)(puVar27 + -0x30) = ppcVar21" (pointer_expression "*(char ***)(puVar27 + -0x30)" * (cast_expression "(char ***)(puVar27 + -0x30)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (assignment_expression "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" identifier = (cast_expression "(char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (if_statement "if (pcVar12[1] != '\0') {\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }" if (parenthesized_expression "(pcVar12[1] != '\0')" ( (binary_expression "pcVar12[1] != '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      dequote_pathname(__pattern);\n      ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);\n      return ppcVar21;\n    }" { (expression_statement "dequote_pathname(__pattern);" (call_expression "dequote_pathname(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11);" (assignment_expression "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" identifier = (cast_expression "(char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(puVar11)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar11)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8);" (assignment_expression "ppcVar15 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8)" identifier = (cast_expression "(char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(puVar11,8)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x6098)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x6098" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar11,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (ppcVar15 == (char **)0x0) goto LAB_000df3a4;" if (parenthesized_expression "(ppcVar15 == (char **)0x0)" ( (binary_expression "ppcVar15 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000df3a4;" goto statement_identifier ;)) (if_statement "if (pcVar24 == (char *)0x0) {\n      bVar1 = true;\n    }\n    else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }" if (parenthesized_expression "(pcVar24 == (char *)0x0)" ( (binary_expression "pcVar24 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = true;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }" else (compound_statement "{\n      bVar1 = true;\n      if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }\n      if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (iVar13 != 2) {\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }" if (parenthesized_expression "(iVar13 != 2)" ( (binary_expression "iVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        pcVar12 = pcVar12 + (2 - (int)pcVar3);\n        goto LAB_000df638;\n      }" { (expression_statement "pcVar12 = pcVar12 + (2 - (int)pcVar3);" (assignment_expression "pcVar12 = pcVar12 + (2 - (int)pcVar3)" identifier = (binary_expression "pcVar12 + (2 - (int)pcVar3)" identifier + (parenthesized_expression "(2 - (int)pcVar3)" ( (binary_expression "2 - (int)pcVar3" number_literal - (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_000df638;" goto statement_identifier ;) })) (if_statement "if (((uint)ppcVar21 & 0x800) == 0) {\n        bVar1 = true;\n      }\n      else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }" if (parenthesized_expression "(((uint)ppcVar21 & 0x800) == 0)" ( (binary_expression "((uint)ppcVar21 & 0x800) == 0" (parenthesized_expression "((uint)ppcVar21 & 0x800)" ( (binary_expression "(uint)ppcVar21 & 0x800" (cast_expression "(uint)ppcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        bVar1 = true;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }" else (compound_statement "{\n        dequote_pathname(__pattern);\n        pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n        iVar4 = *(int *)(puVar27 + -0x50);\n        bVar1 = true;\n      }" { (expression_statement "dequote_pathname(__pattern);" (call_expression "dequote_pathname(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);" (assignment_expression "pcVar24 = (char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" identifier = (cast_expression "(char *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))))) ;) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) }))) }))) (expression_statement "pcVar12 = pcVar24 + 1;" (assignment_expression "pcVar12 = pcVar24 + 1" identifier = (binary_expression "pcVar24 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000df638:\n  pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);" statement_identifier : (expression_statement "pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12);" (assignment_expression "pcVar3 = (char *)(**(code **)(iVar4 + -0x60a4))(pcVar12)" identifier = (cast_expression "(char *)(**(code **)(iVar4 + -0x60a4))(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar4 + -0x60a4))(pcVar12)" (parenthesized_expression "(**(code **)(iVar4 + -0x60a4))" ( (pointer_expression "**(code **)(iVar4 + -0x60a4)" * (pointer_expression "*(code **)(iVar4 + -0x60a4)" * (cast_expression "(code **)(iVar4 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x60a4)" ( (binary_expression "iVar4 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier ))))) ;)) (expression_statement "iVar4 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar4 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar15 = pcVar3;" (assignment_expression "*ppcVar15 = pcVar3" (pointer_expression "*ppcVar15" * identifier) = identifier) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);\n    return ppcVar21;\n  }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);\n    return ppcVar21;\n  }" { (expression_statement "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15);" (assignment_expression "ppcVar21 = (char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15)" identifier = (cast_expression "(char **)(**(code **)(iVar4 + -0x5f94))(ppcVar15)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(iVar4 + -0x5f94))(ppcVar15)" (parenthesized_expression "(**(code **)(iVar4 + -0x5f94))" ( (pointer_expression "**(code **)(iVar4 + -0x5f94)" * (pointer_expression "*(code **)(iVar4 + -0x5f94)" * (cast_expression "(code **)(iVar4 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x5f94)" ( (binary_expression "iVar4 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(ppcVar15)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })) (expression_statement "(**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12);" (call_expression "(**(code **)(iVar4 + -0x5fac))(pcVar3,__pattern,pcVar12)" (parenthesized_expression "(**(code **)(iVar4 + -0x5fac))" ( (pointer_expression "**(code **)(iVar4 + -0x5fac)" * (pointer_expression "*(code **)(iVar4 + -0x5fac)" * (cast_expression "(code **)(iVar4 + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x5fac)" ( (binary_expression "iVar4 + -0x5fac" identifier + number_literal) ))))) )) (argument_list "(pcVar3,__pattern,pcVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if (!bVar1) {\n    ppcVar15[1] = (char *)0x0;\n    return ppcVar15;\n  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n    ppcVar15[1] = (char *)0x0;\n    return ppcVar15;\n  }" { (expression_statement "ppcVar15[1] = (char *)0x0;" (assignment_expression "ppcVar15[1] = (char *)0x0" (subscript_expression "ppcVar15[1]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return ppcVar15;" return identifier ;) })) (expression_statement "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (assignment_expression "ppcVar21 = (char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" identifier = (cast_expression "(char **)(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))))) ;) (return_statement "return ppcVar21;" return identifier ;) })))
(translation_unit "int * glob_vector(int *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}\n\n" (function_definition "int * glob_vector(int *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" primitive_type (pointer_declarator "* glob_vector(int *param_1,int *param_2,int *param_3)" * (function_declarator "glob_vector(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *__pattern;" primitive_type (pointer_declarator "*__pattern" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint unaff_s5;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *unaff_s7;" primitive_type (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_130 [8];" type_identifier (array_declarator "auStack_130 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_128 [8];" type_identifier (array_declarator "local_128 [8]" identifier [ number_literal ]) ;) (declaration "int local_120;" primitive_type identifier ;) (declaration "undefined1 *local_11c;" type_identifier (pointer_declarator "*local_11c" * identifier) ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int *local_f4;" primitive_type (pointer_declarator "*local_f4" * identifier) ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 auStack_d0 [164];" type_identifier (array_declarator "auStack_d0 [164]" identifier [ number_literal ]) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" identifier = identifier) ;) (expression_statement "local_2c = *(char **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_2c = *(char **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" if (parenthesized_expression "((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0'))" ( (binary_expression "(param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(unaff_s5 = 0, *(char *)param_1 == '\0')" ( (comma_expression "unaff_s5 = 0, *(char *)param_1 == '\0'" (assignment_expression "unaff_s5 = 0" identifier = number_literal) , (binary_expression "*(char *)param_1 == '\0'" (pointer_expression "*(char *)param_1" * (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" { (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = FUN_000dd618(param_2);" (assignment_expression "iVar3 = FUN_000dd618(param_2)" identifier = (call_expression "FUN_000dd618(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" identifier = identifier) ;) (if_statement "if (iVar3 < 0) goto LAB_000de914;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000de914;" goto statement_identifier ;)) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" identifier = identifier) ;) (expression_statement "unaff_s0 = &local_120;" (assignment_expression "unaff_s0 = &local_120" identifier = (pointer_expression "&local_120" & identifier)) ;) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "bVar1 = puVar4 == (undefined1 *)0x0;" (assignment_expression "bVar1 = puVar4 == (undefined1 *)0x0" identifier = (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      unaff_s0 = (int *)0x0;\n    }" { (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" else (compound_statement "{\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" { (expression_statement "local_11c = puVar4;" (assignment_expression "local_11c = puVar4" identifier = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) }))) (expression_statement "unaff_s5 = (uint)!bVar1;" (assignment_expression "unaff_s5 = (uint)!bVar1" identifier = (cast_expression "(uint)!bVar1" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar1" ! identifier))) ;) (expression_statement "puVar4 = auStack_130;" (assignment_expression "puVar4 = auStack_130" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) goto LAB_000ddefc;" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ddefc;" goto statement_identifier ;)) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" if (parenthesized_expression "(*(char *)param_1 != '\0')" ( (binary_expression "*(char *)param_1 != '\0'" (pointer_expression "*(char *)param_1" * (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" { (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" identifier = number_literal) ;) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" identifier = identifier) ;) (goto_statement "goto LAB_000ddf3c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;)) (expression_statement "puVar4 = puVar27;" (assignment_expression "puVar4 = puVar27" identifier = identifier) ;) (if_statement "if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" { (labeled_statement "LAB_000ddefc:\n    puVar27 = puVar4;" statement_identifier : (expression_statement "puVar27 = puVar4;" (assignment_expression "puVar27 = puVar4" identifier = identifier) ;)) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);" (assignment_expression "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18)" identifier = (call_expression "glob_pattern_p((char *)param_1,(int)piVar18)" identifier (argument_list "((char *)param_1,(int)piVar18)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }" { (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = FUN_000dd618(param_2);" (assignment_expression "iVar25 = FUN_000dd618(param_2)" identifier = (call_expression "FUN_000dd618(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" if (parenthesized_expression "(-1 < iVar25)" ( (binary_expression "-1 < iVar25" number_literal < identifier) )) (compound_statement "{\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" { (expression_statement "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR_strlen_00158444)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)((int)param_3 + iVar3 + 2))" ( (cast_expression "(undefined1 *)((int)param_3 + iVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + iVar3 + 2)" ( (binary_expression "(int)param_3 + iVar3 + 2" (binary_expression "(int)param_3 + iVar3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(iVar3 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\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        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar1 = true;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" else (compound_statement "{\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) }) (else_clause "else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" else (if_statement "if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }" { (expression_statement "piVar18 = param_1;" (assignment_expression "piVar18 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" else (compound_statement "{\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" { (expression_statement "(*(code *)PTR_strcpy_001584cc)(iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)(iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "FUN_000ddacc(iVar3);" (call_expression "FUN_000ddacc(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2);" (call_expression "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;" (assignment_expression "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f" (pointer_expression "*(undefined1 *)((int)piVar7 + (int)param_3)" * (cast_expression "(undefined1 *)((int)piVar7 + (int)param_3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + (int)param_3)" ( (binary_expression "(int)piVar7 + (int)param_3" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" ( (pointer_expression "*(code *)PTR_strcpy_001584cc" * (cast_expression "(code *)PTR_strcpy_001584cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" ( (cast_expression "(undefined1 *)((int)piVar7 + (int)((int)param_3 + 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + (int)((int)param_3 + 1))" ( (binary_expression "(int)piVar7 + (int)((int)param_3 + 1)" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)param_3 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_3 + 1)" ( (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) , identifier ))) ;) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) (expression_statement "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);" (assignment_expression "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" identifier = (call_expression "(*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" (parenthesized_expression "(*(code *)PTR___lxstat64_001582c8)" ( (pointer_expression "*(code *)PTR___lxstat64_001582c8" * (cast_expression "(code *)PTR___lxstat64_001582c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,piVar7,auStack_d0)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" if (parenthesized_expression "(iVar25 < 0)" ( (binary_expression "iVar25 < 0" identifier < number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s0 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s0 = (int *)(puVar27 + 8)" identifier = (cast_expression "(int *)(puVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ;) (expression_statement "*unaff_s0 = 0;" (assignment_expression "*unaff_s0 = 0" (pointer_expression "*unaff_s0" * identifier) = number_literal) ;) (expression_statement "*(int *)(puVar27 + 0xc) = iVar3;" (assignment_expression "*(int *)(puVar27 + 0xc) = iVar3" (pointer_expression "*(int *)(puVar27 + 0xc)" * (cast_expression "(int *)(puVar27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0xc)" ( (binary_expression "puVar27 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = puVar27 + -8;" (assignment_expression "puVar4 = puVar27 + -8" identifier = (binary_expression "puVar27 + -8" identifier + number_literal)) ;) }))))) (goto_statement "goto LAB_000ddefc;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_opendir_001582b8)();" (assignment_expression "iVar3 = (*(code *)PTR_opendir_001582b8)()" identifier = (call_expression "(*(code *)PTR_opendir_001582b8)()" (parenthesized_expression "(*(code *)PTR_opendir_001582b8)" ( (pointer_expression "*(code *)PTR_opendir_001582b8" * (cast_expression "(code *)PTR_opendir_001582b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" identifier = (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" { (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (if_statement "if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }" if (parenthesized_expression "(*(int *)PTR_noglob_dot_filenames_00157468 != 0)" ( (binary_expression "*(int *)PTR_noglob_dot_filenames_00157468 != 0" (pointer_expression "*(int *)PTR_noglob_dot_filenames_00157468" * (cast_expression "(int *)PTR_noglob_dot_filenames_00157468" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = 5;\n      }" { (expression_statement "local_f0 = 5;" (assignment_expression "local_f0 = 5" identifier = number_literal) ;) })) (if_statement "if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }" if (parenthesized_expression "(*(int *)PTR_glob_ignore_case_0015745c != 0)" ( (binary_expression "*(int *)PTR_glob_ignore_case_0015745c != 0" (pointer_expression "*(int *)PTR_glob_ignore_case_0015745c" * (cast_expression "(int *)PTR_glob_ignore_case_0015745c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = local_f0 | 0x10;\n      }" { (expression_statement "local_f0 = local_f0 | 0x10;" (assignment_expression "local_f0 = local_f0 | 0x10" identifier = (binary_expression "local_f0 | 0x10" identifier | number_literal)) ;) })) (if_statement "if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }" if (parenthesized_expression "(*(int *)PTR_extended_glob_00156948 != 0)" ( (binary_expression "*(int *)PTR_extended_glob_00156948 != 0" (pointer_expression "*(int *)PTR_extended_glob_00156948" * (cast_expression "(int *)PTR_extended_glob_00156948" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_f0 = local_f0 | 0x20;\n      }" { (expression_statement "local_f0 = local_f0 | 0x20;" (assignment_expression "local_f0 = local_f0 | 0x20" identifier = (binary_expression "local_f0 | 0x20" identifier | number_literal)) ;) })) (expression_statement "uVar13 = (int)param_3 >> 2 & 4;" (assignment_expression "uVar13 = (int)param_3 >> 2 & 4" identifier = (binary_expression "(int)param_3 >> 2 & 4" (binary_expression "(int)param_3 >> 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar22 = (uint)param_3 & 0x100;" (assignment_expression "uVar22 = (uint)param_3 & 0x100" identifier = (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar21 = uVar13 | 8;" (assignment_expression "uVar21 = uVar13 | 8" identifier = (binary_expression "uVar13 | 8" identifier | number_literal)) ;) (if_statement "if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar21 = uVar13;\n      }" { (expression_statement "uVar21 = uVar13;" (assignment_expression "uVar21 = uVar13" identifier = identifier) ;) })) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);" (assignment_expression "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x3104)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x3104)" ( (binary_expression "PTR_LAB_00157bb0 + -0x3104" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8)" identifier = (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00157bb0 + -0x29e8)" ( (binary_expression "PTR_LAB_00157bb0 + -0x29e8" identifier + number_literal) )))) ;) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" statement_identifier : (do_statement "do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" do (compound_statement "{\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      }" { (expression_statement "unaff_s7 = piVar9;" (assignment_expression "unaff_s7 = piVar9" identifier = identifier) ;) (if_statement "if (*unaff_s6 != 0) goto LAB_000de7e4;" if (parenthesized_expression "(*unaff_s6 != 0)" ( (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" * identifier) != number_literal) )) (goto_statement "goto LAB_000de7e4;" goto statement_identifier ;)) (if_statement "if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" if (parenthesized_expression "(*unaff_s7 != 0)" ( (binary_expression "*unaff_s7 != 0" (pointer_expression "*unaff_s7" * identifier) != number_literal) )) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);" (assignment_expression "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2)" identifier = (call_expression "(*(code *)PTR_signal_is_pending_00157bdc)(2)" (parenthesized_expression "(*(code *)PTR_signal_is_pending_00157bdc)" ( (pointer_expression "*(code *)PTR_signal_is_pending_00157bdc" * (cast_expression "(code *)PTR_signal_is_pending_00157bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_0015832c)(iVar3)" (parenthesized_expression "(*(code *)PTR_readdir64_0015832c)" ( (pointer_expression "*(code *)PTR_readdir64_0015832c" * (cast_expression "(code *)PTR_readdir64_0015832c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))))) ;) (if_statement "if (piVar10 == (int *)0x0) goto LAB_000de200;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000de200;" goto statement_identifier ;)) (expression_statement "piVar9 = unaff_s7;" (assignment_expression "piVar9 = unaff_s7" identifier = identifier) ;) (if_statement "if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" if (parenthesized_expression "(*piVar10 != 0 || piVar10[1] != 0)" ( (binary_expression "*piVar10 != 0 || piVar10[1] != 0" (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) || (binary_expression "piVar10[1] != 0" (subscript_expression "piVar10[1]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" { (expression_statement "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();" (assignment_expression "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_001584e0" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_001584e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" { (expression_statement "piVar18 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar18 = (int *)((int)piVar10 + 0x13)" identifier = (cast_expression "(int *)((int)piVar10 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar25 = FUN_000dd23c(param_1,piVar18,param_3);" (assignment_expression "iVar25 = FUN_000dd23c(param_1,piVar18,param_3)" identifier = (call_expression "FUN_000dd23c(param_1,piVar18,param_3)" identifier (argument_list "(param_1,piVar18,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 != 0) goto LAB_000de030;" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000de030;" goto statement_identifier ;)) })) (expression_statement "piVar10 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar10 = (int *)((int)piVar10 + 0x13)" identifier = (cast_expression "(int *)((int)piVar10 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (expression_statement "iVar25 = (*pcVar28)(param_1,piVar10,param_3);" (assignment_expression "iVar25 = (*pcVar28)(param_1,piVar10,param_3)" identifier = (call_expression "(*pcVar28)(param_1,piVar10,param_3)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(param_1,piVar10,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" { (if_statement "if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" if (parenthesized_expression "(((uint)param_3 & 0x18) == 0)" ( (binary_expression "((uint)param_3 & 0x18) == 0" (parenthesized_expression "((uint)param_3 & 0x18)" ( (binary_expression "(uint)param_3 & 0x18" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }" { (labeled_statement "LAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" statement_identifier : (if_statement "if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" if (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" ( (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" ( (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" { (if_statement "if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" if (parenthesized_expression "(local_fc == 0)" ( (binary_expression "local_fc == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }" { (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" identifier = identifier) ;) (expression_statement "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);" (assignment_expression "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" identifier = (cast_expression "(int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" identifier (argument_list "(param_1,local_f4,(uint)param_3 & 0xfffffdff)" ( identifier , identifier , (binary_expression "(uint)param_3 & 0xfffffdff" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" { (if_statement "if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" if (parenthesized_expression "(*piVar9 == 0)" ( (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }" { (if_statement "if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" if (parenthesized_expression "(piVar9 != (int *)PTR_glob_error_return_001573cc)" ( (binary_expression "piVar9 != (int *)PTR_glob_error_return_001573cc" identifier != (cast_expression "(int *)PTR_glob_error_return_001573cc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) })) }) (else_clause "else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" else (compound_statement "{\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" { (expression_statement "local_e8 = local_fc;" (assignment_expression "local_e8 = local_fc" identifier = identifier) ;) (expression_statement "local_e0 = (int *)0x0;" (assignment_expression "local_e0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = piVar9;" (assignment_expression "unaff_s6 = piVar9" identifier = identifier) ;) (do_statement "do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);" do (compound_statement "{\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      }" { (expression_statement "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (piVar10 == (int *)0x0) goto joined_r0x000de570;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x000de570;" goto statement_identifier ;)) (if_statement "if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          unaff_s7 = piVar10;\n                        }" { (expression_statement "unaff_s7 = piVar10;" (assignment_expression "unaff_s7 = piVar10" identifier = identifier) ;) })) (expression_statement "*piVar10 = (int)local_e0;" (assignment_expression "*piVar10 = (int)local_e0" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar10[1] = *unaff_s6;" (assignment_expression "piVar10[1] = *unaff_s6" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = (pointer_expression "*unaff_s6" * identifier)) ;) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = unaff_s6 + 1;" (assignment_expression "unaff_s6 = unaff_s6 + 1" identifier = (binary_expression "unaff_s6 + 1" identifier + number_literal)) ;) (expression_statement "local_e0 = piVar10;" (assignment_expression "local_e0 = piVar10" identifier = identifier) ;) }) while (parenthesized_expression "(*unaff_s6 != 0)" ( (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" * identifier) != number_literal) )) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (if_statement "if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" if (parenthesized_expression "(local_e8 != 0)" ( (binary_expression "local_e8 != 0" identifier != number_literal) )) (compound_statement "{\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" { (if_statement "if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          unaff_s2 = unaff_s7;\n                        }" { (expression_statement "unaff_s2 = unaff_s7;" (assignment_expression "unaff_s2 = unaff_s7" identifier = identifier) ;) })) (expression_statement "*unaff_s7 = (int)piVar7;" (assignment_expression "*unaff_s7 = (int)piVar7" (pointer_expression "*unaff_s7" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s5 = unaff_s5 + local_e8;" (assignment_expression "unaff_s5 = unaff_s5 + local_e8" identifier = (binary_expression "unaff_s5 + local_e8" identifier + identifier)) ;) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) })) }))) })) }) (else_clause "else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" else (compound_statement "{\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" { (labeled_statement "LAB_000de154:\n                  piVar18 = (int *)0x0;" statement_identifier : (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" if (parenthesized_expression "((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0))" ( (binary_expression "(local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" (parenthesized_expression "(local_fc == -2)" ( (binary_expression "local_fc == -2" identifier == number_literal) )) && (parenthesized_expression "(iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" ( (comma_expression "iVar25 = (*pcVar5)(local_f4), iVar25 == 0" (assignment_expression "iVar25 = (*pcVar5)(local_f4)" identifier = (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_f4)" ( identifier )))) , (binary_expression "iVar25 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) }))) (expression_statement "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  unaff_s2 = piVar9;\n                }" { (expression_statement "unaff_s2 = piVar9;" (assignment_expression "unaff_s2 = piVar9" identifier = identifier) ;) })) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(local_f4)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier )))) ;) (expression_statement "unaff_s6 = (int *)(iVar25 + 1);" (assignment_expression "unaff_s6 = (int *)(iVar25 + 1)" identifier = (cast_expression "(int *)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);" (assignment_expression "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_malloc_0015849c)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (if_statement "if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }" { (if_statement "if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(iVar25);" (call_expression "(*(code *)PTR_free_001585ac)(iVar25)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25)" ( identifier ))) ;) })) }) (else_clause "else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" else (compound_statement "{\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" { (if_statement "if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" { (expression_statement "*piVar9 = (int)piVar7;" (assignment_expression "*piVar9 = (int)piVar7" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9[1] = iVar25;" (assignment_expression "piVar9[1] = iVar25" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);" (call_expression "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25,local_f4,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar7 = piVar9;" (assignment_expression "piVar7 = piVar9" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) }))) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) }))) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" if (parenthesized_expression "(((uint)param_3 & 8) != 0)" ( (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" ( (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) })) }) (else_clause "else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" else (compound_statement "{\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" { (expression_statement "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);" (assignment_expression "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21)" identifier = (cast_expression "(int *)sh_makepath(param_2,piVar10,uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sh_makepath(param_2,piVar10,uVar21)" identifier (argument_list "(param_2,piVar10,uVar21)" ( identifier , identifier , identifier ))))) ;) (expression_statement "piVar18 = param_3;" (assignment_expression "piVar18 = param_3" identifier = identifier) ;) (expression_statement "local_fc = (*pcVar5)(local_f4);" (assignment_expression "local_fc = (*pcVar5)(local_f4)" identifier = (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_f4)" ( identifier )))) ;) (if_statement "if (-1 < local_fc) goto LAB_000de13c;" if (parenthesized_expression "(-1 < local_fc)" ( (binary_expression "-1 < local_fc" number_literal < identifier) )) (goto_statement "goto LAB_000de13c;" goto statement_identifier ;)) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" if (parenthesized_expression "(((uint)param_3 & 8) != 0)" ( (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" ( (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000de030;" goto statement_identifier ;) })) (if_statement "if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;" if (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" ( (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" ( (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000de154;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "piVar18 = (int *)fnx_fromfs(piVar10,uVar6);" (assignment_expression "piVar18 = (int *)fnx_fromfs(piVar10,uVar6)" identifier = (cast_expression "(int *)fnx_fromfs(piVar10,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "fnx_fromfs(piVar10,uVar6)" identifier (argument_list "(piVar10,uVar6)" ( identifier , identifier ))))) ;) (expression_statement "iVar25 = strmatch(param_1,piVar18,local_f0);" (assignment_expression "iVar25 = strmatch(param_1,piVar18,local_f0)" identifier = (call_expression "strmatch(param_1,piVar18,local_f0)" identifier (argument_list "(param_1,piVar18,local_f0)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" if (parenthesized_expression "(iVar25 != 1)" ( (binary_expression "iVar25 != 1" identifier != number_literal) )) (compound_statement "{\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" { (if_statement "if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" if (parenthesized_expression "(local_e4 < 100000)" ( (binary_expression "local_e4 < 100000" identifier < number_literal) )) (compound_statement "{\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }" { (expression_statement "unaff_s6 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s6 = (int *)(puVar27 + 8)" identifier = (cast_expression "(int *)(puVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = puVar27 + -8;" (assignment_expression "puVar27 = puVar27 + -8" identifier = (binary_expression "puVar27 + -8" identifier + number_literal)) ;) (expression_statement "local_e4 = local_e4 + 8;" (assignment_expression "local_e4 = local_e4 + 8" identifier = (binary_expression "local_e4 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" else (compound_statement "{\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" { (expression_statement "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  unaff_s2 = unaff_s6;\n                }" { (expression_statement "unaff_s2 = unaff_s6;" (assignment_expression "unaff_s2 = unaff_s6" identifier = identifier) ;) })) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" if (parenthesized_expression "(unaff_s6 == (int *)0x0)" ( (binary_expression "unaff_s6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" { (if_statement "if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar1 = true;\n                  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" else (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s7);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) }))) (if_statement "if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" if (parenthesized_expression "(unaff_s7 == (int *)0x0)" ( (binary_expression "unaff_s7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s6);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) })) (expression_statement "*unaff_s6 = (int)piVar7;" (assignment_expression "*unaff_s6 = (int)piVar7" (pointer_expression "*unaff_s6" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s6[1] = (int)unaff_s7;" (assignment_expression "unaff_s6[1] = (int)unaff_s7" (subscript_expression "unaff_s6[1]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);" (call_expression "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" ( (pointer_expression "*(code *)PTR_memmove_001585b8" * (cast_expression "(code *)PTR_memmove_001585b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,piVar10,iVar25 + 1)" ( identifier , identifier , (binary_expression "iVar25 + 1" identifier + number_literal) ))) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (expression_statement "piVar7 = unaff_s6;" (assignment_expression "piVar7 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" identifier = (cast_expression "(int *)PTR_interrupt_state_00156848" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" identifier = (cast_expression "(int *)PTR_terminating_signal_00156844" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) }))) (goto_statement "goto LAB_000de914;" goto statement_identifier ;) (labeled_statement "LAB_000de7e4:\n  bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) (goto_statement "goto LAB_000de200;" goto statement_identifier ;) (labeled_statement "LAB_000df004:\n  puVar23 = puVar23 + 1;" statement_identifier : (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar19 = (char *)*puVar23;" (assignment_expression "pcVar19 = (char *)*puVar23" identifier = (cast_expression "(char *)*puVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) ;) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" identifier = (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" { (labeled_statement "LAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" statement_identifier : (if_statement "if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" if (parenthesized_expression "(*piVar9 != 0)" ( (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" * identifier) != number_literal) )) (compound_statement "{\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);" do (compound_statement "{\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*piVar9 != 0)" ( (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" * identifier) != number_literal) )) ;) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" * (cast_expression "(undefined4 *)(puVar27 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (return_statement "return piVar7;" return identifier ;) })) (goto_statement "goto LAB_000df010;" goto statement_identifier ;) (labeled_statement "joined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" statement_identifier : (while_statement "while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" while (parenthesized_expression "(local_e0 != (int *)0x0)" ( (binary_expression "local_e0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" { (expression_statement "local_e0 = (int *)*local_e0;" (assignment_expression "local_e0 = (int *)*local_e0" identifier = (cast_expression "(int *)*local_e0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_e0" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f4)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);" statement_identifier : (expression_statement "(*(code *)PTR_closedir_001582bc)(iVar3);" (call_expression "(*(code *)PTR_closedir_001582bc)(iVar3)" (parenthesized_expression "(*(code *)PTR_closedir_001582bc)" ( (pointer_expression "*(code *)PTR_closedir_001582bc" * (cast_expression "(code *)PTR_closedir_001582bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) (if_statement "if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" if (parenthesized_expression "(((uint)param_3 & 0x210) == 0x210)" ( (binary_expression "((uint)param_3 & 0x210) == 0x210" (parenthesized_expression "((uint)param_3 & 0x210)" ( (binary_expression "(uint)param_3 & 0x210" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" ( (pointer_expression "*(code *)PTR_strlen_00158444" * (cast_expression "(code *)PTR_strlen_00158444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_3 = (int *)(iVar3 + 1);" (assignment_expression "param_3 = (int *)(iVar3 + 1)" identifier = (cast_expression "(int *)(iVar3 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);" (assignment_expression "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(param_3)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" if (parenthesized_expression "(unaff_s0 == (int *)0x0)" ( (binary_expression "unaff_s0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }" { (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) (if_statement "if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" { (expression_statement "(*(code *)PTR_free_001585ac)(param_1);" (call_expression "(*(code *)PTR_free_001585ac)(param_1)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) }) (else_clause "else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" else (compound_statement "{\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" { (if_statement "if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" { (expression_statement "unaff_s0[1] = (int)param_1;" (assignment_expression "unaff_s0[1] = (int)param_1" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) = (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*unaff_s0 = (int)piVar7;" (assignment_expression "*unaff_s0 = (int)piVar7" (pointer_expression "*unaff_s0" * identifier) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }" { (expression_statement "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);" (call_expression "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_memcpy_00158594)" ( (pointer_expression "*(code *)PTR_memcpy_00158594" * (cast_expression "(code *)PTR_memcpy_00158594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" else (compound_statement "{\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" { (expression_statement "*(undefined1 *)param_1 = 0;" (assignment_expression "*(undefined1 *)param_1 = 0" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_2 = piVar18;" (assignment_expression "param_2 = piVar18" identifier = identifier) ;) }))) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = param_2;" (assignment_expression "piVar18 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000ddf00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s0);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_000ddf10:\n    piVar7 = unaff_s0;" statement_identifier : (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;)) (if_statement "if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" if (parenthesized_expression "(unaff_s0 == (int *)0x0)" ( (binary_expression "unaff_s0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar7 = (int *)0x0;\n    }" { (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" else (compound_statement "{\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" { (do_statement "do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);" do (compound_statement "{\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      }" { (if_statement "if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar7 = (int *)*piVar7;" (assignment_expression "piVar7 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) }) (else_clause "else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" else (compound_statement "{\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" { (if_statement "if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }" if (parenthesized_expression "(piVar7 == unaff_s2)" ( (binary_expression "piVar7 == unaff_s2" identifier == identifier) )) (compound_statement "{\n            unaff_s2 = (int *)0x0;\n          }" { (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "unaff_s0 = (int *)*piVar7;" (assignment_expression "unaff_s0 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" identifier = identifier) ;) }))) }) while (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)) )) ;) }))) }) (else_clause "else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" else (compound_statement "{\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" { (labeled_statement "LAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;" statement_identifier : (if_statement "if (bVar1) goto LAB_000ddf10;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;))) (expression_statement "param_1 = (int *)((unaff_s5 + 1) * 4);" (assignment_expression "param_1 = (int *)((unaff_s5 + 1) * 4)" identifier = (cast_expression "(int *)((unaff_s5 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((unaff_s5 + 1) * 4)" ( (binary_expression "(unaff_s5 + 1) * 4" (parenthesized_expression "(unaff_s5 + 1)" ( (binary_expression "unaff_s5 + 1" identifier + number_literal) )) * number_literal) )))) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0015849c)(param_1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" ( (pointer_expression "*(code *)PTR_malloc_0015849c" * (cast_expression "(code *)PTR_malloc_0015849c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000ddf10;" 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)) )) (goto_statement "goto LAB_000ddf10;" goto statement_identifier ;)) (if_statement "if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" if (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" { (expression_statement "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);" (assignment_expression "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7)" identifier = (cast_expression "(int *)((int)(param_1 + -1) + (int)piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(param_1 + -1) + (int)piVar7)" ( (binary_expression "(int)(param_1 + -1) + (int)piVar7" (cast_expression "(int)(param_1 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) ))) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar9 = piVar7;" (assignment_expression "piVar9 = piVar7" identifier = identifier) ;) (expression_statement "piVar10 = unaff_s0;" (assignment_expression "piVar10 = unaff_s0" identifier = identifier) ;) (do_statement "do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);" do (compound_statement "{\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      }" { (expression_statement "*piVar9 = piVar10[1];" (assignment_expression "*piVar9 = piVar10[1]" (pointer_expression "*piVar9" * identifier) = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = (int *)*piVar10;" (assignment_expression "piVar10 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) }) while (parenthesized_expression "(piVar18 != piVar9)" ( (binary_expression "piVar18 != piVar9" identifier != identifier) )) ;) })) (expression_statement "param_1 = piVar7 + unaff_s5 + 1;" (assignment_expression "param_1 = piVar7 + unaff_s5 + 1" identifier = (binary_expression "piVar7 + unaff_s5 + 1" (binary_expression "piVar7 + unaff_s5" identifier + identifier) + number_literal)) ;) (expression_statement "param_1[-1] = 0;" (assignment_expression "param_1[-1] = 0" (subscript_expression "param_1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9 = unaff_s0;" (assignment_expression "piVar9 = unaff_s0" identifier = identifier) ;) (if_statement "if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" if (parenthesized_expression "(unaff_s2 != (int *)0x0)" ( (binary_expression "unaff_s2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" { (while_statement "while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" { (expression_statement "unaff_s0 = piVar9;" (assignment_expression "unaff_s0 = piVar9" identifier = identifier) ;) (if_statement "if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" if (parenthesized_expression "(piVar9 == unaff_s2)" ( (binary_expression "piVar9 == unaff_s2" identifier == identifier) )) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" { (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s2);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "param_1 = (int *)*piVar9;" (assignment_expression "param_1 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" ( (pointer_expression "*(code *)PTR_free_001585ac" * (cast_expression "(code *)PTR_free_001585ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "piVar9 = param_1;" (assignment_expression "piVar9 = param_1" identifier = identifier) ;) })) })) }))) (labeled_statement "LAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" if (parenthesized_expression "(local_2c == *(char **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "local_2c == *(char **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" * (cast_expression "(char **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return piVar7;\n  }" { (return_statement "return piVar7;" return identifier ;) }))) (expression_statement "pcVar28 = glob_filename;" (assignment_expression "pcVar28 = glob_filename" identifier = identifier) ;) (expression_statement "pcVar19 = local_2c;" (assignment_expression "pcVar19 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar27 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar27 + -4) = pcVar28" (pointer_expression "*(code **)(puVar27 + -4)" * (cast_expression "(code **)(puVar27 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -4)" ( (binary_expression "puVar27 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar27 + -8) = local_128;" (assignment_expression "*(undefined1 **)(puVar27 + -8) = local_128" (pointer_expression "*(undefined1 **)(puVar27 + -8)" * (cast_expression "(undefined1 **)(puVar27 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0xc) = unaff_s7;" (assignment_expression "*(int **)(puVar27 + -0xc) = unaff_s7" (pointer_expression "*(int **)(puVar27 + -0xc)" * (cast_expression "(int **)(puVar27 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x10) = unaff_s6;" (assignment_expression "*(int **)(puVar27 + -0x10) = unaff_s6" (pointer_expression "*(int **)(puVar27 + -0x10)" * (cast_expression "(int **)(puVar27 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar27 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(puVar27 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(puVar27 + -0x14)" * (cast_expression "(uint *)(puVar27 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x14)" ( (binary_expression "puVar27 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x18) = param_3;" (assignment_expression "*(int **)(puVar27 + -0x18) = param_3" (pointer_expression "*(int **)(puVar27 + -0x18)" * (cast_expression "(int **)(puVar27 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x18)" ( (binary_expression "puVar27 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x1c) = param_1;" (assignment_expression "*(int **)(puVar27 + -0x1c) = param_1" (pointer_expression "*(int **)(puVar27 + -0x1c)" * (cast_expression "(int **)(puVar27 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x1c)" ( (binary_expression "puVar27 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x20) = unaff_s2;" (assignment_expression "*(int **)(puVar27 + -0x20) = unaff_s2" (pointer_expression "*(int **)(puVar27 + -0x20)" * (cast_expression "(int **)(puVar27 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x20)" ( (binary_expression "puVar27 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x24) = piVar7;" (assignment_expression "*(int **)(puVar27 + -0x24) = piVar7" (pointer_expression "*(int **)(puVar27 + -0x24)" * (cast_expression "(int **)(puVar27 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x24)" ( (binary_expression "puVar27 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar27 + -0x28) = unaff_s0;" (assignment_expression "*(int **)(puVar27 + -0x28) = unaff_s0" (pointer_expression "*(int **)(puVar27 + -0x28)" * (cast_expression "(int **)(puVar27 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x28)" ( (binary_expression "puVar27 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;" (assignment_expression "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c" (pointer_expression "*(undefined **)(puVar27 + -0x50)" * (cast_expression "(undefined **)(puVar27 + -0x50)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) = (binary_expression "puVar24 + 0x7fb4c" identifier + number_literal)) ;) (expression_statement "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4)" identifier = (cast_expression "(int *)(**(code **)(puVar24 + 0x79aa8))(4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x79aa8))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x79aa8))" ( (pointer_expression "**(code **)(puVar24 + 0x79aa8)" * (pointer_expression "*(code **)(puVar24 + 0x79aa8)" * (cast_expression "(code **)(puVar24 + 0x79aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x79aa8)" ( (binary_expression "puVar24 + 0x79aa8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "iVar3 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\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    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" identifier = (call_expression "(**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" (parenthesized_expression "(**(code **)(iVar3 + -0x61d4))" ( (pointer_expression "**(code **)(iVar3 + -0x61d4)" * (pointer_expression "*(code **)(iVar3 + -0x61d4)" * (cast_expression "(code **)(iVar3 + -0x61d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x61d4)" ( (binary_expression "iVar3 + -0x61d4" identifier + number_literal) ))))) )) (argument_list "(pcVar19,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }" { (labeled_statement "LAB_000deb88:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" statement_identifier : (if_statement "if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" if (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" { (expression_statement "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" identifier = (cast_expression "(int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" ( (pointer_expression "**(code **)(iVar25 + -0x6098)" * (pointer_expression "*(code **)(iVar25 + -0x6098)" * (cast_expression "(code **)(iVar25 + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x6098)" ( (binary_expression "iVar25 + -0x6098" identifier + number_literal) ))))) )) (argument_list "(piVar7,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\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        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }" { (if_statement "if (iVar3 == 0) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);" statement_identifier : (expression_statement "(**(code **)(iVar26 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar26 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar26 + -0x5f94))" ( (pointer_expression "**(code **)(iVar26 + -0x5f94)" * (pointer_expression "*(code **)(iVar26 + -0x5f94)" * (cast_expression "(code **)(iVar26 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x5f94)" ( (binary_expression "iVar26 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;)) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000df634:\n      iVar17 = uVar21 + 1;" statement_identifier : (expression_statement "iVar17 = uVar21 + 1;" (assignment_expression "iVar17 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" statement_identifier : (expression_statement "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" (assignment_expression "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17)" identifier = (call_expression "(**(code **)(iVar26 + -0x60a4))(iVar17)" (parenthesized_expression "(**(code **)(iVar26 + -0x60a4))" ( (pointer_expression "**(code **)(iVar26 + -0x60a4)" * (pointer_expression "*(code **)(iVar26 + -0x60a4)" * (cast_expression "(code **)(iVar26 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x60a4)" ( (binary_expression "iVar26 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(iVar17)" ( identifier )))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*piVar7 = iVar26;" (assignment_expression "*piVar7 = iVar26" (pointer_expression "*piVar7" * identifier) = identifier) ;) (if_statement "if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);" (call_expression "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17)" (parenthesized_expression "(**(code **)(iVar25 + -0x5fac))" ( (pointer_expression "**(code **)(iVar25 + -0x5fac)" * (pointer_expression "*(code **)(iVar25 + -0x5fac)" * (cast_expression "(code **)(iVar25 + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5fac)" ( (binary_expression "iVar25 + -0x5fac" identifier + number_literal) ))))) )) (argument_list "(iVar26,__pattern,iVar17)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar7[1] = 0;\n          return piVar7;\n        }" { (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar7;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar7;" return identifier ;) })) (labeled_statement "LAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);" statement_identifier : (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" if (parenthesized_expression "((iVar3 == 0) || (__pattern == (char *)0x0))" ( (binary_expression "(iVar3 == 0) || (__pattern == (char *)0x0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (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        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" statement_identifier : (if_statement "if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" ( (pointer_expression "**(code **)(iVar25 + -0x7ce8)" * (pointer_expression "*(code **)(iVar25 + -0x7ce8)" * (cast_expression "(code **)(iVar25 + -0x7ce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ce8)" ( (binary_expression "iVar25 + -0x7ce8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" ( (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" * (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" * (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) })))) (if_statement "if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d20)" * (cast_expression "(code **)(iVar25 + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d20)" ( (binary_expression "iVar25 + -0x7d20" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" ( (pointer_expression "**(code **)(iVar25 + -0x7cf4)" * (pointer_expression "*(code **)(iVar25 + -0x7cf4)" * (cast_expression "(code **)(iVar25 + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf4)" ( (binary_expression "iVar25 + -0x7cf4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" identifier = (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))();" (call_expression "(**(code **)(iVar25 + -0x5f94))()" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe | 0x100" (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | number_literal)) ;) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" if (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" ( (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" else (if_statement "if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" if (parenthesized_expression "(*pcVar19 == '*')" ( (binary_expression "*pcVar19 == '*'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000df42c:\n      pcVar8 = __pattern;" statement_identifier : (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;)) (if_statement "if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" if (parenthesized_expression "((pcVar19[1] == '*') && (pcVar19[2] == '\0'))" ( (binary_expression "(pcVar19[1] == '*') && (pcVar19[2] == '\0')" (parenthesized_expression "(pcVar19[1] == '*')" ( (binary_expression "pcVar19[1] == '*'" (subscript_expression "pcVar19[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(pcVar19[2] == '\0')" ( (binary_expression "pcVar19[2] == '\0'" (subscript_expression "pcVar19[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" { (expression_statement "uVar13 = uVar22 | 0x210;" (assignment_expression "uVar13 = uVar22 | 0x210" identifier = (binary_expression "uVar22 | 0x210" identifier | number_literal)) ;) (if_statement "if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" { (if_statement "if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" if (parenthesized_expression "(((uint)piVar18 & 0x10) == 0)" ( (binary_expression "((uint)piVar18 & 0x10) == 0" (parenthesized_expression "((uint)piVar18 & 0x10)" ( (binary_expression "(uint)piVar18 & 0x10" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" { (expression_statement "uVar13 = uVar22 & 0xfffffdff | 0x10;" (assignment_expression "uVar13 = uVar22 & 0xfffffdff | 0x10" identifier = (binary_expression "uVar22 & 0xfffffdff | 0x10" (binary_expression "uVar22 & 0xfffffdff" identifier & number_literal) | number_literal)) ;) })) (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) }) (else_clause "else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" else (compound_statement "{\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" { (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) }))) }) (else_clause "else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" else (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" { (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) }))))) (labeled_statement "LAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" statement_identifier : (expression_statement "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13)" identifier = (cast_expression "(int *)glob_vector(pcVar19,pcVar8,uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(pcVar19,pcVar8,uVar13)" identifier (argument_list "(pcVar19,pcVar8,uVar13)" ( identifier , identifier , identifier ))))) ;)) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\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 "{\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }" { (labeled_statement "LAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" statement_identifier : (if_statement "if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" if (parenthesized_expression "(piVar7 != *(int **)(iVar25 + -0x7174))" ( (binary_expression "piVar7 != *(int **)(iVar25 + -0x7174)" identifier != (pointer_expression "*(int **)(iVar25 + -0x7174)" * (cast_expression "(int **)(iVar25 + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" { (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" identifier = identifier) ;) (if_statement "if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" if (parenthesized_expression "((uVar13 & 0x10) != 0)" ( (binary_expression "(uVar13 & 0x10) != 0" (parenthesized_expression "(uVar13 & 0x10)" ( (binary_expression "uVar13 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" { (expression_statement "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" identifier = (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" ( (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);" (assignment_expression "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" identifier = (cast_expression "(int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000dd6dc(pcVar19,piVar7,piVar18)" identifier (argument_list "(pcVar19,piVar7,piVar18)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (iVar3 == 0) {\n          return piVar18;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar18;\n        }" { (return_statement "return piVar18;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (return_statement "return piVar18;" return identifier ;) }))) })) (if_statement "if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000df4b0;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" else (compound_statement "{\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" { (if_statement "if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" if (parenthesized_expression "(**(int **)(iVar25 + -0x7bf8) != 0)" ( (binary_expression "**(int **)(iVar25 + -0x7bf8) != 0" (pointer_expression "**(int **)(iVar25 + -0x7bf8)" * (pointer_expression "*(int **)(iVar25 + -0x7bf8)" * (cast_expression "(int **)(iVar25 + -0x7bf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bf8)" ( (binary_expression "iVar25 + -0x7bf8" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" { (expression_statement "iVar3 = glob_dirscan(pcVar19,0x2f);" (assignment_expression "iVar3 = glob_dirscan(pcVar19,0x2f)" identifier = (call_expression "glob_dirscan(pcVar19,0x2f)" identifier (argument_list "(pcVar19,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_000deb88;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000deb88;" goto statement_identifier ;)) })) (expression_statement "iVar17 = iVar3 - (int)pcVar19;" (assignment_expression "iVar17 = iVar3 - (int)pcVar19" identifier = (binary_expression "iVar3 - (int)pcVar19" identifier - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar21 = iVar17 + 1;" (assignment_expression "uVar21 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);" (assignment_expression "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" identifier = (cast_expression "(char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" (parenthesized_expression "(**(code **)(iVar25 + -0x60a4))" ( (pointer_expression "**(code **)(iVar25 + -0x60a4)" * (pointer_expression "*(code **)(iVar25 + -0x60a4)" * (cast_expression "(code **)(iVar25 + -0x60a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x60a4)" ( (binary_expression "iVar25 + -0x60a4" identifier + number_literal) ))))) )) (argument_list "(iVar17 + 2)" ( (binary_expression "iVar17 + 2" identifier + number_literal) ))))) ;) (if_statement "if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)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 **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }" { (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5fac)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5fac" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern,pcVar19,uVar21)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "__pattern[uVar21] = '\0';" (assignment_expression "__pattern[uVar21] = '\0'" (subscript_expression "__pattern[uVar21]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar20 = (char *)(iVar3 + 1);" (assignment_expression "pcVar20 = (char *)(iVar3 + 1)" identifier = (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000deb94;" goto statement_identifier ;) })) (expression_statement "iVar25 = glob_pattern_p(__pattern,(int)pcVar19);" (assignment_expression "iVar25 = glob_pattern_p(__pattern,(int)pcVar19)" identifier = (call_expression "glob_pattern_p(__pattern,(int)pcVar19)" identifier (argument_list "(__pattern,(int)pcVar19)" ( identifier , (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (compound_statement "{\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" { (expression_statement "uVar13 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar13 = (uint)piVar18 & 0xfffffffe" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;" (assignment_expression "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400" (pointer_expression "*(uint *)(puVar27 + -0x44)" * (cast_expression "(uint *)(puVar27 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) )))) = (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" if (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" ( (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44)" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar27 + -0x44)" * (cast_expression "(undefined4 *)(puVar27 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" else (compound_statement "{\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" { (if_statement "if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" if (parenthesized_expression "(*__pattern == '*')" ( (binary_expression "*__pattern == '*'" (pointer_expression "*__pattern" * identifier) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }" { (if_statement "if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" if (parenthesized_expression "(__pattern[1] == '*')" ( (binary_expression "__pattern[1] == '*'" (subscript_expression "__pattern[1]" identifier [ number_literal ]) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }" { (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;) (if_statement "if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" if (parenthesized_expression "((__pattern[2] == '/') || (__pattern[2] == '\0'))" ( (binary_expression "(__pattern[2] == '/') || (__pattern[2] == '\0')" (parenthesized_expression "(__pattern[2] == '/')" ( (binary_expression "__pattern[2] == '/'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(__pattern[2] == '\0')" ( (binary_expression "__pattern[2] == '\0'" (subscript_expression "__pattern[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }" { (do_statement "do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');" do (compound_statement "{\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              }" { (expression_statement "pcVar15 = pcVar8;" (assignment_expression "pcVar15 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar15;" (assignment_expression "pcVar8 = pcVar15" identifier = identifier) ;) (if_statement "if (pcVar15[1] != '*') break;" if (parenthesized_expression "(pcVar15[1] != '*')" ( (binary_expression "pcVar15[1] != '*'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar15[2] == '/')" ( (binary_expression "pcVar15[2] == '/'" (subscript_expression "pcVar15[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }" { (expression_statement "pcVar8 = pcVar15 + 3;" (assignment_expression "pcVar8 = pcVar15 + 3" identifier = (binary_expression "pcVar15 + 3" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar15[3];" (assignment_expression "cVar2 = pcVar15[3]" identifier = (subscript_expression "pcVar15[3]" identifier [ number_literal ])) ;) (while_statement "while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" while (parenthesized_expression "(cVar2 == '/')" ( (binary_expression "cVar2 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" { (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) })) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') break;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }) (else_clause "else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" else (if_statement "if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" if (parenthesized_expression "(pcVar15[2] != '\0')" ( (binary_expression "pcVar15[2] != '\0'" (subscript_expression "pcVar15[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" { (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (goto_statement "goto LAB_000dedb8;" goto statement_identifier ;) })))) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*pcVar8 == '*')" ( (binary_expression "*pcVar8 == '*'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'*'" ' character ')) )) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (labeled_statement "LAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;" statement_identifier : (expression_statement "*(int *)(puVar27 + -0x40) = (int)cVar2;" (assignment_expression "*(int *)(puVar27 + -0x40) = (int)cVar2" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) = (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);" (assignment_expression "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0)" (pointer_expression "*(uint *)(puVar27 + -0x48)" * (cast_expression "(uint *)(puVar27 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(cVar2 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar2 == 0)" ( (binary_expression "cVar2 == 0" identifier == number_literal) )))) ;) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "uVar13 = uVar13 | 0x210;" (assignment_expression "uVar13 = uVar13 | 0x210" identifier = (binary_expression "uVar13 | 0x210" identifier | number_literal)) ;) (if_statement "if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;" if (parenthesized_expression "(*(int *)(puVar27 + -0x40) == 0)" ( (binary_expression "*(int *)(puVar27 + -0x40) == 0" (pointer_expression "*(int *)(puVar27 + -0x40)" * (cast_expression "(int *)(puVar27 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) }) (else_clause "else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" else (compound_statement "{\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" { (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" * (cast_expression "(undefined4 *)(puVar27 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "uVar16 = uVar21;" (assignment_expression "uVar16 = uVar21" identifier = identifier) ;) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" identifier = identifier) ;) (if_statement "if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" if (parenthesized_expression "(3 < (int)uVar21)" ( (binary_expression "3 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" { (if_statement "if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;" if (parenthesized_expression "(((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*'))" ( (binary_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')" (parenthesized_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*'))" ( (binary_expression "(pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')" (parenthesized_expression "(pcVar19[uVar21 - 1] != '/')" ( (binary_expression "pcVar19[uVar21 - 1] != '/'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) != (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(pcVar19[uVar21 - 2] != '*')" ( (binary_expression "pcVar19[uVar21 - 2] != '*'" (subscript_expression "pcVar19[uVar21 - 2]" identifier [ (binary_expression "uVar21 - 2" identifier - number_literal) ]) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "(pcVar19[uVar21 - 3] != '*')" ( (binary_expression "pcVar19[uVar21 - 3] != '*'" (subscript_expression "pcVar19[uVar21 - 3]" identifier [ (binary_expression "uVar21 - 3" identifier - number_literal) ]) != (char_literal "'*'" ' character ')) ))) )) (goto_statement "goto LAB_000dee6c;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar19 + (uVar21 - 6);" (assignment_expression "pcVar8 = pcVar19 + (uVar21 - 6)" identifier = (binary_expression "pcVar19 + (uVar21 - 6)" identifier + (parenthesized_expression "(uVar21 - 6)" ( (binary_expression "uVar21 - 6" identifier - number_literal) )))) ;) (while_statement "while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" while (parenthesized_expression "((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)))" ( (parenthesized_expression "(uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))" ( (comma_expression "uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar14 = uVar22" identifier = identifier) , (comma_expression "uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar22 = uVar14" identifier = identifier) , (binary_expression "pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (binary_expression "pcVar8[2] == '/'" (subscript_expression "pcVar8[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) && (parenthesized_expression "(uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" ( (comma_expression "uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar22 = uVar14 - 3" identifier = (binary_expression "uVar14 - 3" identifier - number_literal)) , (comma_expression "uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar16 = uVar14" identifier = identifier) , (binary_expression "3 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ))))) )) )) (compound_statement "{\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" { (if_statement "if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;" if (parenthesized_expression "((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'))" ( (binary_expression "(pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" (parenthesized_expression "(pcVar8[1] != '*')" ( (binary_expression "pcVar8[1] != '*'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) != (char_literal "'*'" ' character ')) )) || (parenthesized_expression "(cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" ( (comma_expression "cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) , (comma_expression "pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "pcVar8 = pcVar8 + -3" identifier = (binary_expression "pcVar8 + -3" identifier + number_literal)) , (binary_expression "cVar2 != '*'" identifier != (char_literal "'*'" ' character ')))) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "bVar1 = uVar22 != uVar21;" (assignment_expression "bVar1 = uVar22 != uVar21" identifier = (binary_expression "uVar22 != uVar21" identifier != identifier)) ;) (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) (if_statement "if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }" if (parenthesized_expression "((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))))" ( (binary_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" (parenthesized_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*'))" ( (binary_expression "((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')" (parenthesized_expression "((bVar1) && (4 < uVar16))" ( (binary_expression "(bVar1) && (4 < uVar16)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(4 < uVar16)" ( (binary_expression "4 < uVar16" number_literal < identifier) ))) )) && (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" ( (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" ( (parenthesized_expression "(*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')" (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          uVar21 = uVar16 - 3;\n        }" { (expression_statement "uVar21 = uVar16 - 3;" (assignment_expression "uVar21 = uVar16 - 3" identifier = (binary_expression "uVar16 - 3" identifier - number_literal)) ;) })) }))) (labeled_statement "LAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" statement_identifier : (if_statement "if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" if (parenthesized_expression "(pcVar19[uVar21 - 1] == '/')" ( (binary_expression "pcVar19[uVar21 - 1] == '/'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        pcVar19[uVar21 - 1] = '\0';\n      }" { (expression_statement "pcVar19[uVar21 - 1] = '\0';" (assignment_expression "pcVar19[uVar21 - 1] = '\0'" (subscript_expression "pcVar19[uVar21 - 1]" identifier [ (binary_expression "uVar21 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "iVar17 = glob_filename(pcVar19,uVar13 | 0x800);" (assignment_expression "iVar17 = glob_filename(pcVar19,uVar13 | 0x800)" identifier = (call_expression "glob_filename(pcVar19,uVar13 | 0x800)" identifier (argument_list "(pcVar19,uVar13 | 0x800)" ( identifier , (binary_expression "uVar13 | 0x800" identifier | number_literal) )))) ;) (expression_statement "*(int *)(puVar27 + -0x30) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x30) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x30)" * (cast_expression "(int *)(puVar27 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" { (labeled_statement "LAB_000df274:\n        iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (expression_statement "__pattern = (char *)*piVar7;" (assignment_expression "__pattern = (char *)*piVar7" identifier = (cast_expression "(char *)*piVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) (while_statement "while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" while (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          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" { (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "__pattern = (char *)*piVar18;" (assignment_expression "__pattern = (char *)*piVar18" identifier = (cast_expression "(char *)*piVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) })) (goto_statement "goto LAB_000df2ac;" goto statement_identifier ;) })) (if_statement "if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" if (parenthesized_expression "(iVar17 == *(int *)(iVar25 + -0x7174))" ( (binary_expression "iVar17 == *(int *)(iVar25 + -0x7174)" identifier == (pointer_expression "*(int *)(iVar25 + -0x7174)" * (cast_expression "(int *)(iVar25 + -0x7174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return *(int **)(puVar27 + -0x30);" return (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ;) })) (expression_statement "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);" (assignment_expression "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30)" identifier = (cast_expression "(char *)**(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar27 + -0x30)" * (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 **)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (return_statement "return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);" return (pointer_expression "*(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" * (cast_expression "(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7174)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7174" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" if (parenthesized_expression "(*(int *)(puVar27 + -0x48) != 0)" ( (binary_expression "*(int *)(puVar27 + -0x48) != 0" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" { (if_statement "if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" if (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) )) (compound_statement "{\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" { (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000def94;" goto statement_identifier ;) })) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" * (cast_expression "(undefined4 **)(puVar27 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" if (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" ( (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" * (cast_expression "(undefined4 *)(puVar27 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar27 + -0x48);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x48)" identifier = (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "__pattern = (char *)0x0;" (assignment_expression "__pattern = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000deb94;" goto statement_identifier ;) })) })) (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7f90)" * (cast_expression "(int *)(iVar25 + -0x7f90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7f90)" ( (binary_expression "iVar25 + -0x7f90" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000def94:\n      iVar26 = 1;" statement_identifier : (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;)) (expression_statement "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;" (assignment_expression "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18" (pointer_expression "*(int *)(puVar27 + -0x2c)" * (cast_expression "(int *)(puVar27 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x2c)" ( (binary_expression "puVar27 + -0x2c" identifier + number_literal) )))) = (binary_expression "iVar17 + -0x5e18" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);" (assignment_expression "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960)" (pointer_expression "*(undefined4 *)(puVar27 + -0x40)" * (cast_expression "(undefined4 *)(puVar27 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar25 + -0x6960)" * (cast_expression "(undefined4 *)(iVar25 + -0x6960)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x6960)" ( (binary_expression "iVar25 + -0x6960" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;" (assignment_expression "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(puVar27 + -0x34)" * (cast_expression "(int *)(puVar27 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x34)" ( (binary_expression "puVar27 + -0x34" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(iVar25 + -0x6990)" * (cast_expression "(int *)(iVar25 + -0x6990)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x6990)" ( (binary_expression "iVar25 + -0x6990" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;" statement_identifier : (expression_statement "uVar21 = (uint)piVar18 & 0xfffffdee;" (assignment_expression "uVar21 = (uint)piVar18 & 0xfffffdee" identifier = (binary_expression "(uint)piVar18 & 0xfffffdee" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;)) (if_statement "if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" if (parenthesized_expression "((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*'))" ( (binary_expression "(*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "(*(int *)(puVar27 + -0x44) == 0)" ( (binary_expression "*(int *)(puVar27 + -0x44) == 0" (pointer_expression "*(int *)(puVar27 + -0x44)" * (cast_expression "(int *)(puVar27 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x44)" ( (binary_expression "puVar27 + -0x44" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) (compound_statement "{\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }" { (if_statement "if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;" if (parenthesized_expression "((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0'))" ( (binary_expression "(*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')" (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 1) != '\0')" ( (binary_expression "*(char *)(iVar3 + 1) != '\0'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000defd0;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" else (compound_statement "{\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" { (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }" if (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" ( (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" ( (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar21 = uVar21 | 0x210;\n        }" { (expression_statement "uVar21 = uVar21 | 0x210;" (assignment_expression "uVar21 = uVar21 | 0x210" identifier = (binary_expression "uVar21 | 0x210" identifier | number_literal)) ;) })) (if_statement "if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" if (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" { (labeled_statement "LAB_000defd0:\n          uVar21 = uVar21 | 0x100;" statement_identifier : (expression_statement "uVar21 = uVar21 | 0x100;" (assignment_expression "uVar21 = uVar21 | 0x100" identifier = (binary_expression "uVar21 | 0x100" identifier | number_literal)) ;)) (expression_statement "pcVar19 = *(char **)(puVar27 + -0x2c);" (assignment_expression "pcVar19 = *(char **)(puVar27 + -0x2c)" identifier = (pointer_expression "*(char **)(puVar27 + -0x2c)" * (cast_expression "(char **)(puVar27 + -0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x2c)" ( (binary_expression "puVar27 + -0x2c" identifier + number_literal) ))))) ;) })) }))) (expression_statement "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" identifier = (cast_expression "(int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(puVar27 + -0x40))" ( (pointer_expression "**(code **)(puVar27 + -0x40)" * (pointer_expression "*(code **)(puVar27 + -0x40)" * (cast_expression "(code **)(puVar27 + -0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x40)" ( (binary_expression "puVar27 + -0x40" identifier + number_literal) ))))) )) (argument_list "(pcVar20,pcVar19,uVar21)" ( identifier , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 == (int *)0x0) goto LAB_000df26c;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000df26c;" goto statement_identifier ;)) (if_statement "if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;" if (parenthesized_expression "(piVar9 == *(int **)(iVar25 + -0x7174))" ( (binary_expression "piVar9 == *(int **)(iVar25 + -0x7174)" identifier == (pointer_expression "*(int **)(iVar25 + -0x7174)" * (cast_expression "(int **)(iVar25 + -0x7174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7174)" ( (binary_expression "iVar25 + -0x7174" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000df004;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10;" (assignment_expression "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10" (pointer_expression "*(uint *)(puVar27 + -0x38)" * (cast_expression "(uint *)(puVar27 + -0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x38)" ( (binary_expression "puVar27 + -0x38" identifier + number_literal) )))) = (binary_expression "uVar21 & 0x10" identifier & number_literal)) ;) (if_statement "if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" if (parenthesized_expression "(((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))))" ( (binary_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" (parenthesized_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*'))" ( (binary_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')" (parenthesized_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*'))" ( (binary_expression "((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "((uVar21 & 0x10) == 0)" ( (binary_expression "(uVar21 & 0x10) == 0" (parenthesized_expression "(uVar21 & 0x10)" ( (binary_expression "uVar21 & 0x10" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "(*(char *)(iVar3 + 2) != '*')" ( (binary_expression "*(char *)(iVar3 + 2) != '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) ))) )) || (parenthesized_expression "((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" ( (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))" ( (binary_expression "*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')" (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(iVar3 + 3) != '/')" ( (binary_expression "*(char *)(iVar3 + 3) != '/'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'/'" ' character ')) ))) )) ))) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);" (assignment_expression "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" identifier = (cast_expression "(int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" (parenthesized_expression "(**(code **)(puVar27 + -0x34))" ( (pointer_expression "**(code **)(puVar27 + -0x34)" * (pointer_expression "*(code **)(puVar27 + -0x34)" * (cast_expression "(code **)(puVar27 + -0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x34)" ( (binary_expression "puVar27 + -0x34" identifier + number_literal) ))))) )) (argument_list "(*puVar23,piVar9,piVar18)" ( (pointer_expression "*puVar23" * identifier) , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000df0a0:\n        iVar17 = 0;" statement_identifier : (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;)) (if_statement "if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" if (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) (compound_statement "{\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" { (labeled_statement "LAB_000df0ac:\n          iVar17 = 0;" statement_identifier : (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;)) (expression_statement "piVar12 = piVar10;" (assignment_expression "piVar12 = piVar10" identifier = identifier) ;) (do_statement "do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);" do (compound_statement "{\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          }" { (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar12 != 0)" ( (binary_expression "*piVar12 != 0" (pointer_expression "*piVar12" * identifier) != number_literal) )) ;) })) }) (else_clause "else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" else (compound_statement "{\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" { (expression_statement "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" * (cast_expression "(uint *)(puVar27 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "uVar21 & 0x100" identifier & number_literal)) ;) (expression_statement "piVar10 = piVar9;" (assignment_expression "piVar10 = piVar9" identifier = identifier) ;) (if_statement "if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;" if (parenthesized_expression "((uVar21 & 0x100) == 0)" ( (binary_expression "(uVar21 & 0x100) == 0" (parenthesized_expression "(uVar21 & 0x100)" ( (binary_expression "uVar21 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;)) (expression_statement "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" * (cast_expression "(uint *)(puVar27 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" if (parenthesized_expression "(((uint)piVar18 & 0x100) != 0)" ( (binary_expression "((uint)piVar18 & 0x100) != 0" (parenthesized_expression "((uint)piVar18 & 0x100)" ( (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" { (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (if_statement "if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" if (parenthesized_expression "((char *)*piVar9 != (char *)0x0)" ( (binary_expression "(char *)*piVar9 != (char *)0x0" (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" { (expression_statement "piVar12 = piVar9;" (assignment_expression "piVar12 = piVar9" identifier = identifier) ;) (if_statement "if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" if (parenthesized_expression "(*(char *)*piVar9 == '\0')" ( (binary_expression "*(char *)*piVar9 == '\0'" (pointer_expression "*(char *)*piVar9" * (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" { (do_statement "do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');" do (compound_statement "{\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            }" { (expression_statement "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;" (assignment_expression "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar19 = (char *)piVar12[1];" (assignment_expression "pcVar19 = (char *)piVar12[1]" identifier = (cast_expression "(char *)piVar12[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" { (expression_statement "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];" (assignment_expression "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)]" (pointer_expression "*piVar9" * identifier) = (subscript_expression "piVar9[*(int *)(puVar27 + -0x3c)]" identifier [ (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) ])) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piVar9 + iVar17;" (assignment_expression "piVar12 = piVar9 + iVar17" identifier = (binary_expression "piVar9 + iVar17" identifier + identifier)) ;) (do_statement "do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);" do (compound_statement "{\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12[-iVar17] = iVar11;" (assignment_expression "piVar12[-iVar17] = iVar11" (subscript_expression "piVar12[-iVar17]" identifier [ (unary_expression "-iVar17" - identifier) ]) = identifier) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" * (cast_expression "(undefined4 *)(puVar27 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000df0a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000df0ac;" goto statement_identifier ;) })) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }))) (expression_statement "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);" (assignment_expression "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" identifier = (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" ( (pointer_expression "**(code **)(iVar25 + -0x6098)" * (pointer_expression "*(code **)(iVar25 + -0x6098)" * (cast_expression "(code **)(iVar25 + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x6098)" ( (binary_expression "iVar25 + -0x6098" identifier + number_literal) ))))) )) (argument_list "(piVar7,(iVar26 + iVar17) * 4)" ( identifier , (binary_expression "(iVar26 + iVar17) * 4" (parenthesized_expression "(iVar26 + iVar17)" ( (binary_expression "iVar26 + iVar17" identifier + identifier) )) * number_literal) )))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar27 + -0x48) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x48) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar10;" (assignment_expression "iVar3 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" identifier = identifier) ;) (while_statement "while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" { (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" identifier = (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar18;" (assignment_expression "iVar3 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) })) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);" statement_identifier : (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;)) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df2c8;" 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)) )) (goto_statement "goto LAB_000df2c8;" goto statement_identifier ;)) (goto_statement "goto LAB_000df274;" goto statement_identifier ;) })) (expression_statement "iVar17 = *piVar10;" (assignment_expression "iVar17 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (if_statement "if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" { (expression_statement "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;" (assignment_expression "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4" identifier = (binary_expression "*(int *)(puVar27 + -0x48) + iVar26 * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) + (binary_expression "iVar26 * 4" identifier * number_literal))) ;) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) (do_statement "do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);" do (compound_statement "{\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        }" { (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar11 + -4) = iVar17;" (assignment_expression "*(int *)(iVar11 + -4) = iVar17" (pointer_expression "*(int *)(iVar11 + -4)" * (cast_expression "(int *)(iVar11 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *piVar7;" (assignment_expression "iVar17 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" identifier = (binary_expression "iVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) })) (expression_statement "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" ( (binary_expression "*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" * (cast_expression "(int *)(puVar27 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) )))) + (binary_expression "(iVar26 + 0x3fffffff) * 4" (parenthesized_expression "(iVar26 + 0x3fffffff)" ( (binary_expression "iVar26 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) = number_literal) ;) (if_statement "if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" if (parenthesized_expression "(piVar9 == piVar10)" ( (binary_expression "piVar9 == piVar10" identifier == identifier) )) (compound_statement "{\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }" { (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar27 + -0x38) != 0)" ( (binary_expression "*(int *)(puVar27 + -0x38) != 0" (pointer_expression "*(int *)(puVar27 + -0x38)" * (cast_expression "(int *)(puVar27 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x38)" ( (binary_expression "puVar27 + -0x38" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" { (if_statement "if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;" if (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" ( (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) != (char_literal "'*'" ' character ')) )) (goto_statement "goto LAB_000df14c;" goto statement_identifier ;)) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" if (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" ( (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" * (cast_expression "(char *)(iVar3 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 2)" ( (binary_expression "iVar3 + 2" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" { (if_statement "if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;" if (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0')" ( (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" * (cast_expression "(char *)(iVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 3)" ( (binary_expression "iVar3 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000df14c;" goto statement_identifier ;)) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;) })) })) }) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" else (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" { (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);" statement_identifier : (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar27 + -0x3c)" * (cast_expression "(int *)(puVar27 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x3c)" ( (binary_expression "puVar27 + -0x3c" identifier + number_literal) ))))) ;)) }))) (expression_statement "piVar7 = *(int **)(puVar27 + -0x48);" (assignment_expression "piVar7 = *(int **)(puVar27 + -0x48)" identifier = (pointer_expression "*(int **)(puVar27 + -0x48)" * (cast_expression "(int **)(puVar27 + -0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x48)" ( (binary_expression "puVar27 + -0x48" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) goto LAB_000df004;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000df004;" goto statement_identifier ;)) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" identifier = (pointer_expression "*(int **)(puVar27 + -0x30)" * (cast_expression "(int **)(puVar27 + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x30)" ( (binary_expression "puVar27 + -0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000df34c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" if (parenthesized_expression "(*(char *)(iVar3 + 1) == '\0')" ( (binary_expression "*(char *)(iVar3 + 1) == '\0'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" { (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x6098)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x6098" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7,8)" ( identifier , number_literal ))))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df3a4;" 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)) )) (goto_statement "goto LAB_000df3a4;" goto statement_identifier ;)) (if_statement "if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000df634;" goto statement_identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" if (parenthesized_expression "(iVar25 == 2)" ( (binary_expression "iVar25 == 2" identifier == number_literal) )) (compound_statement "{\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" { (if_statement "if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" if (parenthesized_expression "(((uint)piVar18 & 0x800) == 0)" ( (binary_expression "((uint)piVar18 & 0x800) == 0" (parenthesized_expression "((uint)piVar18 & 0x800)" ( (binary_expression "(uint)piVar18 & 0x800" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar3 = 1;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" else (compound_statement "{\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" { (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" identifier = (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000df634;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 + 2;" (assignment_expression "iVar17 = iVar17 + 2" identifier = (binary_expression "iVar17 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_000df638;" goto statement_identifier ;) })) (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" identifier (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" ( (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe" identifier = (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" identifier = identifier) ;) (if_statement "if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" if (parenthesized_expression "(((uint)piVar18 & 0x400) != 0)" ( (binary_expression "((uint)piVar18 & 0x400) != 0" (parenthesized_expression "((uint)piVar18 & 0x400)" ( (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" { (if_statement "if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" ( (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" * (cast_expression "(char *)(iVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000df42c;" goto statement_identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" identifier = identifier) ;) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000debcc;" goto statement_identifier ;) })) (expression_statement "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22)" identifier = (cast_expression "(int *)glob_vector(pcVar20,__pattern,uVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "glob_vector(pcVar20,__pattern,uVar22)" identifier (argument_list "(pcVar20,__pattern,uVar22)" ( identifier , identifier , identifier ))))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\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      iVar3 = 1;\n      goto LAB_000debec;\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000debec;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" ( (pointer_expression "**(code **)(iVar25 + -0x5f94)" * (pointer_expression "*(code **)(iVar25 + -0x5f94)" * (cast_expression "(code **)(iVar25 + -0x5f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x5f94)" ( (binary_expression "iVar25 + -0x5f94" identifier + number_literal) ))))) )) (argument_list "(__pattern)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cfc)" * (cast_expression "(int **)(iVar25 + -0x7cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" statement_identifier : (if_statement "if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" { (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" else (compound_statement "{\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" { (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" ( (pointer_expression "**(code **)(iVar25 + -0x7ce8)" * (pointer_expression "*(code **)(iVar25 + -0x7ce8)" * (cast_expression "(code **)(iVar25 + -0x7ce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ce8)" ( (binary_expression "iVar25 + -0x7ce8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" ( (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" * (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" * (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cfc)" ( (binary_expression "iVar25 + -0x7cfc" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" identifier = (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" identifier = (pointer_expression "*(int **)(iVar25 + -0x7cf8)" * (cast_expression "(int **)(iVar25 + -0x7cf8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf8)" ( (binary_expression "iVar25 + -0x7cf8" identifier + number_literal) ))))) ;) })))) (if_statement "if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }" { (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d20)" * (cast_expression "(code **)(iVar25 + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d20)" ( (binary_expression "iVar25 + -0x7d20" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" else (compound_statement "{\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" { (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" ( (pointer_expression "**(code **)(iVar25 + -0x7cf4)" * (pointer_expression "*(code **)(iVar25 + -0x7cf4)" * (cast_expression "(code **)(iVar25 + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cf4)" ( (binary_expression "iVar25 + -0x7cf4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" identifier = (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" * (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" ( (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" * (cast_expression "(int *)(puVar27 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x50)" ( (binary_expression "puVar27 + -0x50" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return piVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_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 ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (unary_expression ! IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 ( IDENT ))))) ;) (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (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 ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) , (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (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 ( 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (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 ( 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) }))) (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) })) })) }) while (parenthesized_expression ( BOOL )) ;)) })) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_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) )))) ))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (while_statement while (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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == 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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 ( IDENT ))))) ;) (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 ( 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 = 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 ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (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 ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * 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 ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_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 { (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression (pointer_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 , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (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 ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (labeled_statement statement_identifier : (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 ))) ;)) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (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 ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 ))) ;) (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) ))))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (return_statement return 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 (subscript_expression IDENT [ IDENT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (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) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))))) )) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != (char_literal ' character ')))) ))) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT | LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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 ))) ;) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 (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 * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (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) )))) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) ))) )) ))) )) (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 ( (pointer_expression * IDENT) , IDENT , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' escape_sequence ')) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (pointer_expression * IDENT) = (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (unary_expression - IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_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 , (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 IDENT = (pointer_expression * IDENT)) ;) })) (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) }) (else_clause else (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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) ))))) ;) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (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 ))) ;) (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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (return_statement return IDENT ;) })))
(function_definition "int * glob_vector(int *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" (primitive_type "int") (pointer_declarator "* glob_vector(int *param_1,int *param_2,int *param_3)" (* "*") (function_declarator "glob_vector(int *param_1,int *param_2,int *param_3)" (identifier "glob_vector") (parameter_list "(int *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  code *pcVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  char *__pattern;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int iVar17;\n  int *piVar18;\n  char *pcVar19;\n  int *unaff_s0;\n  int *unaff_s2;\n  char *pcVar20;\n  uint unaff_s5;\n  uint uVar21;\n  int *unaff_s6;\n  uint uVar22;\n  undefined4 *puVar23;\n  int *unaff_s7;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_130 [8];\n  undefined1 local_128 [8];\n  int local_120;\n  undefined1 *local_11c;\n  int local_fc;\n  int *local_f4;\n  uint local_f0;\n  int local_e8;\n  int local_e4;\n  int *local_e0;\n  undefined1 auStack_d0 [164];\n  char *local_2c;\n  \n  puVar27 = local_128;\n  local_2c = *(char **)PTR___stack_chk_guard_0015858c;\n  piVar18 = (int *)0x0;\n  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }\n  local_e4 = 0;\n  bVar1 = false;\n  unaff_s0 = (int *)0x0;\nLAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);\n  puVar4 = puVar27;\n  if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }\n  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);\n  if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }\n  goto LAB_000de914;\nLAB_000de7e4:\n  bVar1 = true;\n  goto LAB_000de200;\nLAB_000df004:\n  puVar23 = puVar23 + 1;\n  pcVar19 = (char *)*puVar23;\n  piVar9 = *(int **)(puVar27 + -0x30);\n  if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }\n  goto LAB_000df010;\njoined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }\n  (*(code *)PTR_free_001585ac)(piVar9);\n  (*(code *)PTR_free_001585ac)(local_f4);\n  bVar1 = true;\nLAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);\n  unaff_s0 = piVar7;\n  if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }\nLAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }\n  pcVar28 = glob_filename;\n  pcVar19 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(undefined1 **)(puVar27 + -8) = local_128;\n  *(int **)(puVar27 + -0xc) = unaff_s7;\n  *(int **)(puVar27 + -0x10) = unaff_s6;\n  *(uint *)(puVar27 + -0x14) = unaff_s5;\n  *(int **)(puVar27 + -0x18) = param_3;\n  *(int **)(puVar27 + -0x1c) = param_1;\n  *(int **)(puVar27 + -0x20) = unaff_s2;\n  *(int **)(puVar27 + -0x24) = piVar7;\n  *(int **)(puVar27 + -0x28) = unaff_s0;\n  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;\n  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);\n  iVar3 = *(int *)(puVar27 + -0x50);\n  if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  *piVar7 = 0;\n  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }\n  (**(code **)(iVar25 + -0x5f94))(__pattern);\n  iVar25 = *(int *)(puVar27 + -0x50);\n  piVar18 = *(int **)(iVar25 + -0x7cfc);\nLAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }\n  (*pcVar28)();\n  return piVar7;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "char *__pattern;" (primitive_type "char") (pointer_declarator "*__pattern" (* "*") (identifier "__pattern")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "int *unaff_s0;" (primitive_type "int") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "uint unaff_s5;" (type_identifier "uint") (identifier "unaff_s5") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int *unaff_s6;" (primitive_type "int") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int *unaff_s7;" (primitive_type "int") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "undefined1 *puVar27;" (type_identifier "undefined1") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "undefined1 auStack_130 [8];" (type_identifier "undefined1") (array_declarator "auStack_130 [8]" (identifier "auStack_130") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 local_128 [8];" (type_identifier "undefined1") (array_declarator "local_128 [8]" (identifier "local_128") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_120;" (primitive_type "int") (identifier "local_120") (; ";")) (declaration "undefined1 *local_11c;" (type_identifier "undefined1") (pointer_declarator "*local_11c" (* "*") (identifier "local_11c")) (; ";")) (declaration "int local_fc;" (primitive_type "int") (identifier "local_fc") (; ";")) (declaration "int *local_f4;" (primitive_type "int") (pointer_declarator "*local_f4" (* "*") (identifier "local_f4")) (; ";")) (declaration "uint local_f0;" (type_identifier "uint") (identifier "local_f0") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "int local_e4;" (primitive_type "int") (identifier "local_e4") (; ";")) (declaration "int *local_e0;" (primitive_type "int") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "undefined1 auStack_d0 [164];" (type_identifier "undefined1") (array_declarator "auStack_d0 [164]" (identifier "auStack_d0") ([ "[") (number_literal "164") (] "]")) (; ";")) (declaration "char *local_2c;" (primitive_type "char") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" (identifier "puVar27") (= "=") (identifier "local_128")) (; ";")) (expression_statement "local_2c = *(char **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_2c = *(char **)PTR___stack_chk_guard_0015858c" (identifier "local_2c") (= "=") (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" (* "*") (cast_expression "(char **)PTR___stack_chk_guard_0015858c" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0015858c")))) (; ";")) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" (if "if") (parenthesized_expression "((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0'))" (( "(") (binary_expression "(param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')" (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(unaff_s5 = 0, *(char *)param_1 == '\0')" (( "(") (comma_expression "unaff_s5 = 0, *(char *)param_1 == '\0'" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (, ",") (binary_expression "*(char *)param_1 == '\0'" (pointer_expression "*(char *)param_1" (* "*") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar3 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    puVar27 = local_128;\n    if (iVar3 < 0) goto LAB_000de914;\n    puVar27 = auStack_130;\n    unaff_s0 = &local_120;\n    local_120 = 0;\n    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);\n    bVar1 = puVar4 == (undefined1 *)0x0;\n    if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }\n    unaff_s5 = (uint)!bVar1;\n    puVar4 = auStack_130;\n    if (param_1 == (int *)0x0) goto LAB_000ddefc;\n    unaff_s2 = (int *)0x0;\n    if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }\n    goto LAB_000ddf00;\n  }" ({ "{") (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = FUN_000dd618(param_2);" (assignment_expression "iVar3 = FUN_000dd618(param_2)" (identifier "iVar3") (= "=") (call_expression "FUN_000dd618(param_2)" (identifier "FUN_000dd618") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" (identifier "piVar7") (= "=") (cast_expression "(int *)PTR_glob_error_return_001573cc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_glob_error_return_001573cc"))) (; ";")) (expression_statement "puVar27 = local_128;" (assignment_expression "puVar27 = local_128" (identifier "puVar27") (= "=") (identifier "local_128")) (; ";")) (if_statement "if (iVar3 < 0) goto LAB_000de914;" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000de914;" (goto "goto") (statement_identifier "LAB_000de914") (; ";"))) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" (identifier "puVar27") (= "=") (identifier "auStack_130")) (; ";")) (expression_statement "unaff_s0 = &local_120;" (assignment_expression "unaff_s0 = &local_120" (identifier "unaff_s0") (= "=") (pointer_expression "&local_120" (& "&") (identifier "local_120"))) (; ";")) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" (identifier "local_120") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0015849c)(1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (expression_statement "bVar1 = puVar4 == (undefined1 *)0x0;" (assignment_expression "bVar1 = puVar4 == (undefined1 *)0x0" (identifier "bVar1") (= "=") (binary_expression "puVar4 == (undefined1 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar1) {\n      unaff_s0 = (int *)0x0;\n    }\n    else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      unaff_s0 = (int *)0x0;\n    }" ({ "{") (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" (else "else") (compound_statement "{\n      local_11c = puVar4;\n      *puVar4 = 0;\n    }" ({ "{") (expression_statement "local_11c = puVar4;" (assignment_expression "local_11c = puVar4" (identifier "local_11c") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "unaff_s5 = (uint)!bVar1;" (assignment_expression "unaff_s5 = (uint)!bVar1" (identifier "unaff_s5") (= "=") (cast_expression "(uint)!bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (unary_expression "!bVar1" (! "!") (identifier "bVar1")))) (; ";")) (expression_statement "puVar4 = auStack_130;" (assignment_expression "puVar4 = auStack_130" (identifier "puVar4") (= "=") (identifier "auStack_130")) (; ";")) (if_statement "if (param_1 == (int *)0x0) goto LAB_000ddefc;" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000ddefc;" (goto "goto") (statement_identifier "LAB_000ddefc") (; ";"))) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*(char *)param_1 != '\0') {\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" (if "if") (parenthesized_expression "(*(char *)param_1 != '\0')" (( "(") (binary_expression "*(char *)param_1 != '\0'" (pointer_expression "*(char *)param_1" (* "*") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_e4 = 1;\n      puVar27 = auStack_130;\n      goto LAB_000ddf3c;\n    }" ({ "{") (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" (identifier "local_e4") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar27 = auStack_130;" (assignment_expression "puVar27 = auStack_130" (identifier "puVar27") (= "=") (identifier "auStack_130")) (; ";")) (goto_statement "goto LAB_000ddf3c;" (goto "goto") (statement_identifier "LAB_000ddf3c") (; ";")) (} "}"))) (goto_statement "goto LAB_000ddf00;" (goto "goto") (statement_identifier "LAB_000ddf00") (; ";")) (} "}"))) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "unaff_s0 = (int *)0x0;" (assignment_expression "unaff_s0 = (int *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000ddf3c:\n  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" (statement_identifier "LAB_000ddf3c") (: ":") (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(param_1)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (expression_statement "puVar4 = puVar27;" (assignment_expression "puVar4 = puVar27" (identifier "puVar4") (= "=") (identifier "puVar27")) (; ";")) (if_statement "if (local_e4 != 0) {\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" (if "if") (parenthesized_expression "(local_e4 != 0)" (( "(") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000ddefc:\n    puVar27 = puVar4;\n    unaff_s2 = (int *)0x0;\n    goto LAB_000ddf00;\n  }" ({ "{") (labeled_statement "LAB_000ddefc:\n    puVar27 = puVar4;" (statement_identifier "LAB_000ddefc") (: ":") (expression_statement "puVar27 = puVar4;" (assignment_expression "puVar27 = puVar4" (identifier "puVar27") (= "=") (identifier "puVar4")) (; ";"))) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000ddf00;" (goto "goto") (statement_identifier "LAB_000ddf00") (; ";")) (} "}"))) (expression_statement "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);" (assignment_expression "iVar25 = glob_pattern_p((char *)param_1,(int)piVar18)" (identifier "iVar25") (= "=") (call_expression "glob_pattern_p((char *)param_1,(int)piVar18)" (identifier "glob_pattern_p") (argument_list "((char *)param_1,(int)piVar18)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) () ")")))) (; ";")) (if_statement "if (iVar25 == 0) {\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }\n  else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar18 = (int *)0x0;\n    iVar25 = FUN_000dd618(param_2);\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }\n  }" ({ "{") (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar25 = FUN_000dd618(param_2);" (assignment_expression "iVar25 = FUN_000dd618(param_2)" (identifier "iVar25") (= "=") (call_expression "FUN_000dd618(param_2)" (identifier "FUN_000dd618") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" (identifier "piVar7") (= "=") (cast_expression "(int *)PTR_glob_error_return_001573cc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_glob_error_return_001573cc"))) (; ";")) (if_statement "if (-1 < iVar25) {\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" (if "if") (parenthesized_expression "(-1 < iVar25)" (( "(") (binary_expression "-1 < iVar25" (number_literal "-1") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);\n      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));\n      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }\n      goto LAB_000ddefc;\n    }" ({ "{") (expression_statement "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2)" (identifier "param_3") (= "=") (cast_expression "(int *)(*(code *)PTR_strlen_00158444)(param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2))" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "((undefined1 *)((int)param_3 + iVar3 + 2))" (( "(") (cast_expression "(undefined1 *)((int)param_3 + iVar3 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + iVar3 + 2)" (( "(") (binary_expression "(int)param_3 + iVar3 + 2" (binary_expression "(int)param_3 + iVar3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "2")) () ")"))) () ")"))))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_malloc_0015849c)(iVar3 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }\n      else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\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        if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          bVar1 = true;\n        }\n        else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          bVar1 = true;\n        }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_free_001585ac)(iVar3);\n          bVar1 = true;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" (else "else") (if_statement "if (iVar3 == 0) {\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }\n      else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar18 = param_1;\n        (*(code *)PTR_free_001585ac)(piVar7);\n        bVar1 = true;\n      }" ({ "{") (expression_statement "piVar18 = param_1;" (assignment_expression "piVar18 = param_1" (identifier "piVar18") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_strcpy_001584cc)(iVar3);\n        FUN_000ddacc(iVar3);\n        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);\n        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;\n        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);\n        piVar18 = piVar7;\n        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);\n        if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }\n        (*(code *)PTR_free_001585ac)();\n        unaff_s0 = (int *)(puVar27 + 8);\n        *unaff_s0 = 0;\n        *(int *)(puVar27 + 0xc) = iVar3;\n        unaff_s5 = 1;\n        puVar4 = puVar27 + -8;\n      }" ({ "{") (expression_statement "(*(code *)PTR_strcpy_001584cc)(iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)(iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" (( "(") (pointer_expression "*(code *)PTR_strcpy_001584cc" (* "*") (cast_expression "(code *)PTR_strcpy_001584cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_001584cc"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "FUN_000ddacc(iVar3);" (call_expression "FUN_000ddacc(iVar3)" (identifier "FUN_000ddacc") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2);" (call_expression "(*(code *)PTR_strcpy_001584cc)(piVar7,param_2)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" (( "(") (pointer_expression "*(code *)PTR_strcpy_001584cc" (* "*") (cast_expression "(code *)PTR_strcpy_001584cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_001584cc"))) () ")")) (argument_list "(piVar7,param_2)" (( "(") (identifier "piVar7") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;" (assignment_expression "*(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f" (pointer_expression "*(undefined1 *)((int)piVar7 + (int)param_3)" (* "*") (cast_expression "(undefined1 *)((int)piVar7 + (int)param_3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + (int)param_3)" (( "(") (binary_expression "(int)piVar7 + (int)param_3" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);" (call_expression "(*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" (parenthesized_expression "(*(code *)PTR_strcpy_001584cc)" (( "(") (pointer_expression "*(code *)PTR_strcpy_001584cc" (* "*") (cast_expression "(code *)PTR_strcpy_001584cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_001584cc"))) () ")")) (argument_list "((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3)" (( "(") (cast_expression "(undefined1 *)((int)piVar7 + (int)((int)param_3 + 1))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + (int)((int)param_3 + 1))" (( "(") (binary_expression "(int)piVar7 + (int)((int)param_3 + 1)" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (cast_expression "(int)((int)param_3 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_3 + 1)" (( "(") (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "1")) () ")")))) () ")"))) (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" (identifier "piVar18") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);" (assignment_expression "iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0)" (parenthesized_expression "(*(code *)PTR___lxstat64_001582c8)" (( "(") (pointer_expression "*(code *)PTR___lxstat64_001582c8" (* "*") (cast_expression "(code *)PTR___lxstat64_001582c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___lxstat64_001582c8"))) () ")")) (argument_list "(3,piVar7,auStack_d0)" (( "(") (number_literal "3") (, ",") (identifier "piVar7") (, ",") (identifier "auStack_d0") () ")")))) (; ";")) (if_statement "if (iVar25 < 0) {\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" (if "if") (parenthesized_expression "(iVar25 < 0)" (( "(") (binary_expression "iVar25 < 0" (identifier "iVar25") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7);\n          (*(code *)PTR_free_001585ac)(iVar3);\n          unaff_s2 = (int *)0x0;\n          goto LAB_000ddf00;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(iVar3);" (call_expression "(*(code *)PTR_free_001585ac)(iVar3)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000ddf00;" (goto "goto") (statement_identifier "LAB_000ddf00") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "unaff_s0 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s0 = (int *)(puVar27 + 8)" (identifier "unaff_s0") (= "=") (cast_expression "(int *)(puVar27 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 8)" (( "(") (binary_expression "puVar27 + 8" (identifier "puVar27") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*unaff_s0 = 0;" (assignment_expression "*unaff_s0 = 0" (pointer_expression "*unaff_s0" (* "*") (identifier "unaff_s0")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar27 + 0xc) = iVar3;" (assignment_expression "*(int *)(puVar27 + 0xc) = iVar3" (pointer_expression "*(int *)(puVar27 + 0xc)" (* "*") (cast_expression "(int *)(puVar27 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 0xc)" (( "(") (binary_expression "puVar27 + 0xc" (identifier "puVar27") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar4 = puVar27 + -8;" (assignment_expression "puVar4 = puVar27 + -8" (identifier "puVar4") (= "=") (binary_expression "puVar27 + -8" (identifier "puVar27") (+ "+") (number_literal "-8"))) (; ";")) (} "}")))))) (goto_statement "goto LAB_000ddefc;" (goto "goto") (statement_identifier "LAB_000ddefc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" (else "else") (compound_statement "{\n    iVar3 = (*(code *)PTR_opendir_001582b8)();\n    piVar7 = (int *)PTR_glob_error_return_001573cc;\n    if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_opendir_001582b8)();" (assignment_expression "iVar3 = (*(code *)PTR_opendir_001582b8)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_opendir_001582b8)()" (parenthesized_expression "(*(code *)PTR_opendir_001582b8)" (( "(") (pointer_expression "*(code *)PTR_opendir_001582b8" (* "*") (cast_expression "(code *)PTR_opendir_001582b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_opendir_001582b8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar7 = (int *)PTR_glob_error_return_001573cc;" (assignment_expression "piVar7 = (int *)PTR_glob_error_return_001573cc" (identifier "piVar7") (= "=") (cast_expression "(int *)PTR_glob_error_return_001573cc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_glob_error_return_001573cc"))) (; ";")) (if_statement "if (iVar3 != 0) {\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_f0 = 1;\n      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }\n      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }\n      if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }\n      uVar13 = (int)param_3 >> 2 & 4;\n      uVar22 = (uint)param_3 & 0x100;\n      uVar21 = uVar13 | 8;\n      if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }\n      unaff_s2 = (int *)0x0;\n      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);\n      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);\n      piVar7 = unaff_s0;\n      unaff_s6 = (int *)PTR_interrupt_state_00156848;\n      piVar9 = (int *)PTR_terminating_signal_00156844;\nLAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );\n    }" ({ "{") (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" (identifier "local_f0") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {\n        local_f0 = 5;\n      }" (if "if") (parenthesized_expression "(*(int *)PTR_noglob_dot_filenames_00157468 != 0)" (( "(") (binary_expression "*(int *)PTR_noglob_dot_filenames_00157468 != 0" (pointer_expression "*(int *)PTR_noglob_dot_filenames_00157468" (* "*") (cast_expression "(int *)PTR_noglob_dot_filenames_00157468" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_noglob_dot_filenames_00157468"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_f0 = 5;\n      }" ({ "{") (expression_statement "local_f0 = 5;" (assignment_expression "local_f0 = 5" (identifier "local_f0") (= "=") (number_literal "5")) (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_glob_ignore_case_0015745c != 0) {\n        local_f0 = local_f0 | 0x10;\n      }" (if "if") (parenthesized_expression "(*(int *)PTR_glob_ignore_case_0015745c != 0)" (( "(") (binary_expression "*(int *)PTR_glob_ignore_case_0015745c != 0" (pointer_expression "*(int *)PTR_glob_ignore_case_0015745c" (* "*") (cast_expression "(int *)PTR_glob_ignore_case_0015745c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_glob_ignore_case_0015745c"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_f0 = local_f0 | 0x10;\n      }" ({ "{") (expression_statement "local_f0 = local_f0 | 0x10;" (assignment_expression "local_f0 = local_f0 | 0x10" (identifier "local_f0") (= "=") (binary_expression "local_f0 | 0x10" (identifier "local_f0") (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_extended_glob_00156948 != 0) {\n        local_f0 = local_f0 | 0x20;\n      }" (if "if") (parenthesized_expression "(*(int *)PTR_extended_glob_00156948 != 0)" (( "(") (binary_expression "*(int *)PTR_extended_glob_00156948 != 0" (pointer_expression "*(int *)PTR_extended_glob_00156948" (* "*") (cast_expression "(int *)PTR_extended_glob_00156948" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_extended_glob_00156948"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_f0 = local_f0 | 0x20;\n      }" ({ "{") (expression_statement "local_f0 = local_f0 | 0x20;" (assignment_expression "local_f0 = local_f0 | 0x20" (identifier "local_f0") (= "=") (binary_expression "local_f0 | 0x20" (identifier "local_f0") (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "uVar13 = (int)param_3 >> 2 & 4;" (assignment_expression "uVar13 = (int)param_3 >> 2 & 4" (identifier "uVar13") (= "=") (binary_expression "(int)param_3 >> 2 & 4" (binary_expression "(int)param_3 >> 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (>> ">>") (number_literal "2")) (& "&") (number_literal "4"))) (; ";")) (expression_statement "uVar22 = (uint)param_3 & 0x100;" (assignment_expression "uVar22 = (uint)param_3 & 0x100" (identifier "uVar22") (= "=") (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x100"))) (; ";")) (expression_statement "uVar21 = uVar13 | 8;" (assignment_expression "uVar21 = uVar13 | 8" (identifier "uVar21") (= "=") (binary_expression "uVar13 | 8" (identifier "uVar13") (| "|") (number_literal "8"))) (; ";")) (if_statement "if (uVar22 == 0) {\n        uVar21 = uVar13;\n      }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = uVar13;\n      }" ({ "{") (expression_statement "uVar21 = uVar13;" (assignment_expression "uVar21 = uVar13" (identifier "uVar21") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);" (assignment_expression "pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104)" (identifier "pcVar28") (= "=") (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x3104)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00157bb0 + -0x3104)" (( "(") (binary_expression "PTR_LAB_00157bb0 + -0x3104" (identifier "PTR_LAB_00157bb0") (+ "+") (number_literal "-0x3104")) () ")")))) (; ";")) (expression_statement "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8)" (identifier "pcVar5") (= "=") (cast_expression "(code *)(PTR_LAB_00157bb0 + -0x29e8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00157bb0 + -0x29e8)" (( "(") (binary_expression "PTR_LAB_00157bb0 + -0x29e8" (identifier "PTR_LAB_00157bb0") (+ "+") (number_literal "-0x29e8")) () ")")))) (; ";")) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" (identifier "piVar7") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (labeled_statement "LAB_000de030:\n      do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" (statement_identifier "LAB_000de030") (: ":") (do_statement "do {\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      } while( true );" (do "do") (compound_statement "{\n        unaff_s7 = piVar9;\n        if (*unaff_s6 != 0) goto LAB_000de7e4;\n        if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);\n        if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }\n        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);\n        if (piVar10 == (int *)0x0) goto LAB_000de200;\n        piVar9 = unaff_s7;\n        if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "unaff_s7 = piVar9;" (assignment_expression "unaff_s7 = piVar9" (identifier "unaff_s7") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (*unaff_s6 != 0) goto LAB_000de7e4;" (if "if") (parenthesized_expression "(*unaff_s6 != 0)" (( "(") (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000de7e4;" (goto "goto") (statement_identifier "LAB_000de7e4") (; ";"))) (if_statement "if (*unaff_s7 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" (if "if") (parenthesized_expression "(*unaff_s7 != 0)" (( "(") (binary_expression "*unaff_s7 != 0" (pointer_expression "*unaff_s7" (* "*") (identifier "unaff_s7")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (} "}"))) (expression_statement "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);" (assignment_expression "iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_signal_is_pending_00157bdc)(2)" (parenthesized_expression "(*(code *)PTR_signal_is_pending_00157bdc)" (( "(") (pointer_expression "*(code *)PTR_signal_is_pending_00157bdc" (* "*") (cast_expression "(code *)PTR_signal_is_pending_00157bdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_signal_is_pending_00157bdc"))) () ")")) (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar25 != 0) {\n          bVar1 = true;\n          goto LAB_000de200;\n        }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          bVar1 = true;\n          goto LAB_000de200;\n        }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (} "}"))) (expression_statement "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" (identifier "piVar10") (= "=") (cast_expression "(int *)(*(code *)PTR_readdir64_0015832c)(iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_readdir64_0015832c)(iVar3)" (parenthesized_expression "(*(code *)PTR_readdir64_0015832c)" (( "(") (pointer_expression "*(code *)PTR_readdir64_0015832c" (* "*") (cast_expression "(code *)PTR_readdir64_0015832c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_readdir64_0015832c"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))))) (; ";")) (if_statement "if (piVar10 == (int *)0x0) goto LAB_000de200;" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";"))) (expression_statement "piVar9 = unaff_s7;" (assignment_expression "piVar9 = unaff_s7" (identifier "piVar9") (= "=") (identifier "unaff_s7")) (; ";")) (if_statement "if (*piVar10 != 0 || piVar10[1] != 0) {\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*piVar10 != 0 || piVar10[1] != 0)" (( "(") (binary_expression "*piVar10 != 0 || piVar10[1] != 0" (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "piVar10[1] != 0" (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();\n          if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }\n          piVar10 = (int *)((int)piVar10 + 0x13);\n          piVar18 = piVar10;\n          iVar25 = (*pcVar28)(param_1,piVar10,param_3);\n          unaff_s6 = (int *)PTR_interrupt_state_00156848;\n          piVar9 = (int *)PTR_terminating_signal_00156844;\n          if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();" (assignment_expression "uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" (identifier "uVar13") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_001584e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_001584e0" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_001584e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_001584e0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (1 < uVar13) {\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" (if "if") (parenthesized_expression "(1 < uVar13)" (( "(") (binary_expression "1 < uVar13" (number_literal "1") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n            piVar18 = (int *)((int)piVar10 + 0x13);\n            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 0) goto LAB_000de030;\n          }" ({ "{") (expression_statement "piVar18 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar18 = (int *)((int)piVar10 + 0x13)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar10 + 0x13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 0x13)" (( "(") (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (expression_statement "iVar25 = FUN_000dd23c(param_1,piVar18,param_3);" (assignment_expression "iVar25 = FUN_000dd23c(param_1,piVar18,param_3)" (identifier "iVar25") (= "=") (call_expression "FUN_000dd23c(param_1,piVar18,param_3)" (identifier "FUN_000dd23c") (argument_list "(param_1,piVar18,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "piVar18") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (if_statement "if (iVar25 != 0) goto LAB_000de030;" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000de030;" (goto "goto") (statement_identifier "LAB_000de030") (; ";"))) (} "}"))) (expression_statement "piVar10 = (int *)((int)piVar10 + 0x13);" (assignment_expression "piVar10 = (int *)((int)piVar10 + 0x13)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)piVar10 + 0x13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 0x13)" (( "(") (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" (identifier "piVar18") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "iVar25 = (*pcVar28)(param_1,piVar10,param_3);" (assignment_expression "iVar25 = (*pcVar28)(param_1,piVar10,param_3)" (identifier "iVar25") (= "=") (call_expression "(*pcVar28)(param_1,piVar10,param_3)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(param_1,piVar10,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "piVar10") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (if_statement "if (iVar25 == 0) {\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }\n            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);\n            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);\n            iVar25 = strmatch(param_1,piVar18,local_f0);\n            unaff_s6 = (int *)PTR_interrupt_state_00156848;\n            piVar9 = (int *)PTR_terminating_signal_00156844;\n            if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }\n          }" ({ "{") (if_statement "if (((uint)param_3 & 0x18) == 0) {\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }\n            else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" (if "if") (parenthesized_expression "(((uint)param_3 & 0x18) == 0)" (( "(") (binary_expression "((uint)param_3 & 0x18) == 0" (parenthesized_expression "((uint)param_3 & 0x18)" (( "(") (binary_expression "(uint)param_3 & 0x18" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x18")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }\n            }" ({ "{") (labeled_statement "LAB_000de13c:\n              if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" (statement_identifier "LAB_000de13c") (: ":") (if_statement "if (((uint)param_3 & 0x10) != 0) {\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" (if "if") (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" (( "(") (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" (( "(") (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }\n                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);\n                unaff_s6 = (int *)(iVar25 + 1);\n                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);\n                if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }\n                (*(code *)PTR_free_001585ac)(local_f4);\n                bVar1 = true;\n                goto LAB_000de200;\n              }" ({ "{") (if_statement "if (local_fc == 0) {\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }\n                else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" (if "if") (parenthesized_expression "(local_fc == 0)" (( "(") (binary_expression "local_fc == 0" (identifier "local_fc") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar18 = local_f4;\n                  piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);\n                  if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" (identifier "piVar18") (= "=") (identifier "local_f4")) (; ";")) (expression_statement "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff);" (assignment_expression "piVar9 = (int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" (identifier "piVar9") (= "=") (cast_expression "(int *)glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "glob_vector(param_1,local_f4,(uint)param_3 & 0xfffffdff)" (identifier "glob_vector") (argument_list "(param_1,local_f4,(uint)param_3 & 0xfffffdff)" (( "(") (identifier "param_1") (, ",") (identifier "local_f4") (, ",") (binary_expression "(uint)param_3 & 0xfffffdff" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0xfffffdff")) () ")"))))) (; ";")) (if_statement "if (piVar9 != (int *)0x0) {\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (*piVar9 == 0) {\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }\n                    else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" (if "if") (parenthesized_expression "(*piVar9 == 0)" (( "(") (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }\n                    }" ({ "{") (if_statement "if (piVar9 != (int *)PTR_glob_error_return_001573cc) {\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" (if "if") (parenthesized_expression "(piVar9 != (int *)PTR_glob_error_return_001573cc)" (( "(") (binary_expression "piVar9 != (int *)PTR_glob_error_return_001573cc" (identifier "piVar9") (!= "!=") (cast_expression "(int *)PTR_glob_error_return_001573cc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_glob_error_return_001573cc"))) () ")")) (compound_statement "{\n                        (*(code *)PTR_free_001585ac)(piVar9);\n                      }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" (else "else") (compound_statement "{\n                      local_e8 = local_fc;\n                      local_e0 = (int *)0x0;\n                      unaff_s7 = (int *)0x0;\n                      unaff_s6 = piVar9;\n                      do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);\n                      (*(code *)PTR_free_001585ac)(piVar9);\n                      if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }\n                    }" ({ "{") (expression_statement "local_e8 = local_fc;" (assignment_expression "local_e8 = local_fc" (identifier "local_e8") (= "=") (identifier "local_fc")) (; ";")) (expression_statement "local_e0 = (int *)0x0;" (assignment_expression "local_e0 = (int *)0x0" (identifier "local_e0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" (identifier "unaff_s7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s6 = piVar9;" (assignment_expression "unaff_s6 = piVar9" (identifier "unaff_s6") (= "=") (identifier "piVar9")) (; ";")) (do_statement "do {\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      } while (*unaff_s6 != 0);" (do "do") (compound_statement "{\n                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;\n                        if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }\n                        *piVar10 = (int)local_e0;\n                        piVar10[1] = *unaff_s6;\n                        local_e8 = local_e8 + 1;\n                        unaff_s6 = unaff_s6 + 1;\n                        local_e0 = piVar10;\n                      }" ({ "{") (expression_statement "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8)" (identifier "piVar10") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (piVar10 == (int *)0x0) goto joined_r0x000de570;" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto joined_r0x000de570;" (goto "goto") (statement_identifier "joined_r0x000de570") (; ";"))) (if_statement "if (unaff_s7 == (int *)0x0) {\n                          unaff_s7 = piVar10;\n                        }" (if "if") (parenthesized_expression "(unaff_s7 == (int *)0x0)" (( "(") (binary_expression "unaff_s7 == (int *)0x0" (identifier "unaff_s7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          unaff_s7 = piVar10;\n                        }" ({ "{") (expression_statement "unaff_s7 = piVar10;" (assignment_expression "unaff_s7 = piVar10" (identifier "unaff_s7") (= "=") (identifier "piVar10")) (; ";")) (} "}"))) (expression_statement "*piVar10 = (int)local_e0;" (assignment_expression "*piVar10 = (int)local_e0" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0"))) (; ";")) (expression_statement "piVar10[1] = *unaff_s6;" (assignment_expression "piVar10[1] = *unaff_s6" (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6"))) (; ";")) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 1" (identifier "local_e8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = unaff_s6 + 1;" (assignment_expression "unaff_s6 = unaff_s6 + 1" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 1" (identifier "unaff_s6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_e0 = piVar10;" (assignment_expression "local_e0 = piVar10" (identifier "local_e0") (= "=") (identifier "piVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*unaff_s6 != 0)" (( "(") (binary_expression "*unaff_s6 != 0" (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (if_statement "if (local_e8 != 0) {\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" (if "if") (parenthesized_expression "(local_e8 != 0)" (( "(") (binary_expression "local_e8 != 0" (identifier "local_e8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }\n                        *unaff_s7 = (int)piVar7;\n                        unaff_s5 = unaff_s5 + local_e8;\n                        piVar7 = piVar10;\n                      }" ({ "{") (if_statement "if (unaff_s2 == (int *)0x0) {\n                          unaff_s2 = unaff_s7;\n                        }" (if "if") (parenthesized_expression "(unaff_s2 == (int *)0x0)" (( "(") (binary_expression "unaff_s2 == (int *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          unaff_s2 = unaff_s7;\n                        }" ({ "{") (expression_statement "unaff_s2 = unaff_s7;" (assignment_expression "unaff_s2 = unaff_s7" (identifier "unaff_s2") (= "=") (identifier "unaff_s7")) (; ";")) (} "}"))) (expression_statement "*unaff_s7 = (int)piVar7;" (assignment_expression "*unaff_s7 = (int)piVar7" (pointer_expression "*unaff_s7" (* "*") (identifier "unaff_s7")) (= "=") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (; ";")) (expression_statement "unaff_s5 = unaff_s5 + local_e8;" (assignment_expression "unaff_s5 = unaff_s5 + local_e8" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + local_e8" (identifier "unaff_s5") (+ "+") (identifier "local_e8"))) (; ";")) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" (identifier "piVar7") (= "=") (identifier "piVar10")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" (else "else") (compound_statement "{\nLAB_000de154:\n                  piVar18 = (int *)0x0;\n                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                }" ({ "{") (labeled_statement "LAB_000de154:\n                  piVar18 = (int *)0x0;" (statement_identifier "LAB_000de154") (: ":") (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" (if "if") (parenthesized_expression "((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0))" (( "(") (binary_expression "(local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" (parenthesized_expression "(local_fc == -2)" (( "(") (binary_expression "local_fc == -2" (identifier "local_fc") (== "==") (number_literal "-2")) () ")")) (&& "&&") (parenthesized_expression "(iVar25 = (*pcVar5)(local_f4), iVar25 == 0)" (( "(") (comma_expression "iVar25 = (*pcVar5)(local_f4), iVar25 == 0" (assignment_expression "iVar25 = (*pcVar5)(local_f4)" (identifier "iVar25") (= "=") (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")")))) (, ",") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (goto_statement "goto LAB_000de030;" (goto "goto") (statement_identifier "LAB_000de030") (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = piVar9;\n                }" (if "if") (parenthesized_expression "(unaff_s2 == (int *)0x0)" (( "(") (binary_expression "unaff_s2 == (int *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  unaff_s2 = piVar9;\n                }" ({ "{") (expression_statement "unaff_s2 = piVar9;" (assignment_expression "unaff_s2 = piVar9" (identifier "unaff_s2") (= "=") (identifier "piVar9")) (; ";")) (} "}"))) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(local_f4)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(local_f4)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")")))) (; ";")) (expression_statement "unaff_s6 = (int *)(iVar25 + 1);" (assignment_expression "unaff_s6 = (int *)(iVar25 + 1)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)(iVar25 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 1)" (( "(") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);" (assignment_expression "iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_malloc_0015849c)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")")))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) {\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }\n                else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }\n                }" ({ "{") (if_statement "if (iVar25 != 0) {\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(iVar25);\n                  }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(iVar25);" (call_expression "(*(code *)PTR_free_001585ac)(iVar25)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" (else "else") (compound_statement "{\n                  if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }\n                  (*(code *)PTR_free_001585ac)(piVar9);\n                }" ({ "{") (if_statement "if (iVar25 != 0) {\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *piVar9 = (int)piVar7;\n                    piVar9[1] = iVar25;\n                    piVar18 = local_f4;\n                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);\n                    (*(code *)PTR_free_001585ac)(local_f4);\n                    unaff_s5 = unaff_s5 + 1;\n                    piVar7 = piVar9;\n                    unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                    piVar9 = (int *)PTR_terminating_signal_00156844;\n                    goto LAB_000de030;\n                  }" ({ "{") (expression_statement "*piVar9 = (int)piVar7;" (assignment_expression "*piVar9 = (int)piVar7" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (; ";")) (expression_statement "piVar9[1] = iVar25;" (assignment_expression "piVar9[1] = iVar25" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (expression_statement "piVar18 = local_f4;" (assignment_expression "piVar18 = local_f4" (identifier "piVar18") (= "=") (identifier "local_f4")) (; ";")) (expression_statement "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);" (call_expression "(*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" (( "(") (pointer_expression "*(code *)PTR_memmove_001585b8" (* "*") (cast_expression "(code *)PTR_memmove_001585b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_001585b8"))) () ")")) (argument_list "(iVar25,local_f4,unaff_s6)" (( "(") (identifier "iVar25") (, ",") (identifier "local_f4") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar7 = piVar9;" (assignment_expression "piVar7 = piVar9" (identifier "piVar7") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (goto_statement "goto LAB_000de030;" (goto "goto") (statement_identifier "LAB_000de030") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (} "}")))) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" (if "if") (parenthesized_expression "(((uint)param_3 & 8) != 0)" (( "(") (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" (( "(") (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n              }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" (else "else") (compound_statement "{\n              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);\n              piVar18 = param_3;\n              local_fc = (*pcVar5)(local_f4);\n              if (-1 < local_fc) goto LAB_000de13c;\n              if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }\n              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;\n            }" ({ "{") (expression_statement "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);" (assignment_expression "local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21)" (identifier "local_f4") (= "=") (cast_expression "(int *)sh_makepath(param_2,piVar10,uVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sh_makepath(param_2,piVar10,uVar21)" (identifier "sh_makepath") (argument_list "(param_2,piVar10,uVar21)" (( "(") (identifier "param_2") (, ",") (identifier "piVar10") (, ",") (identifier "uVar21") () ")"))))) (; ";")) (expression_statement "piVar18 = param_3;" (assignment_expression "piVar18 = param_3" (identifier "piVar18") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_fc = (*pcVar5)(local_f4);" (assignment_expression "local_fc = (*pcVar5)(local_f4)" (identifier "local_fc") (= "=") (call_expression "(*pcVar5)(local_f4)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")")))) (; ";")) (if_statement "if (-1 < local_fc) goto LAB_000de13c;" (if "if") (parenthesized_expression "(-1 < local_fc)" (( "(") (binary_expression "-1 < local_fc" (number_literal "-1") (< "<") (identifier "local_fc")) () ")")) (goto_statement "goto LAB_000de13c;" (goto "goto") (statement_identifier "LAB_000de13c") (; ";"))) (if_statement "if (((uint)param_3 & 8) != 0) {\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" (if "if") (parenthesized_expression "(((uint)param_3 & 8) != 0)" (( "(") (binary_expression "((uint)param_3 & 8) != 0" (parenthesized_expression "((uint)param_3 & 8)" (( "(") (binary_expression "(uint)param_3 & 8" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(local_f4);\n                unaff_s6 = (int *)PTR_interrupt_state_00156848;\n                piVar9 = (int *)PTR_terminating_signal_00156844;\n                goto LAB_000de030;\n              }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (goto_statement "goto LAB_000de030;" (goto "goto") (statement_identifier "LAB_000de030") (; ";")) (} "}"))) (if_statement "if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;" (if "if") (parenthesized_expression "(((uint)param_3 & 0x10) != 0)" (( "(") (binary_expression "((uint)param_3 & 0x10) != 0" (parenthesized_expression "((uint)param_3 & 0x10)" (( "(") (binary_expression "(uint)param_3 & 0x10" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000de154;" (goto "goto") (statement_identifier "LAB_000de154") (; ";"))) (} "}")))) (expression_statement "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "uVar6 = (*(code *)PTR_strlen_00158444)(piVar10)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "piVar18 = (int *)fnx_fromfs(piVar10,uVar6);" (assignment_expression "piVar18 = (int *)fnx_fromfs(piVar10,uVar6)" (identifier "piVar18") (= "=") (cast_expression "(int *)fnx_fromfs(piVar10,uVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "fnx_fromfs(piVar10,uVar6)" (identifier "fnx_fromfs") (argument_list "(piVar10,uVar6)" (( "(") (identifier "piVar10") (, ",") (identifier "uVar6") () ")"))))) (; ";")) (expression_statement "iVar25 = strmatch(param_1,piVar18,local_f0);" (assignment_expression "iVar25 = strmatch(param_1,piVar18,local_f0)" (identifier "iVar25") (= "=") (call_expression "strmatch(param_1,piVar18,local_f0)" (identifier "strmatch") (argument_list "(param_1,piVar18,local_f0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar18") (, ",") (identifier "local_f0") () ")")))) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (if_statement "if (iVar25 != 1) {\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" (if "if") (parenthesized_expression "(iVar25 != 1)" (( "(") (binary_expression "iVar25 != 1" (identifier "iVar25") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }\n              if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }\n              *unaff_s6 = (int)piVar7;\n              unaff_s6[1] = (int)unaff_s7;\n              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);\n              unaff_s5 = unaff_s5 + 1;\n              piVar18 = piVar10;\n              piVar7 = unaff_s6;\n              unaff_s6 = (int *)PTR_interrupt_state_00156848;\n              piVar9 = (int *)PTR_terminating_signal_00156844;\n            }" ({ "{") (if_statement "if (local_e4 < 100000) {\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }\n              else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" (if "if") (parenthesized_expression "(local_e4 < 100000)" (( "(") (binary_expression "local_e4 < 100000" (identifier "local_e4") (< "<") (number_literal "100000")) () ")")) (compound_statement "{\n                unaff_s6 = (int *)(puVar27 + 8);\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                puVar27 = puVar27 + -8;\n                local_e4 = local_e4 + 8;\n              }" ({ "{") (expression_statement "unaff_s6 = (int *)(puVar27 + 8);" (assignment_expression "unaff_s6 = (int *)(puVar27 + 8)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)(puVar27 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 8)" (( "(") (binary_expression "puVar27 + 8" (identifier "puVar27") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (identifier "unaff_s7") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(iVar25 + 1)" (( "(") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "puVar27 = puVar27 + -8;" (assignment_expression "puVar27 = puVar27 + -8" (identifier "puVar27") (= "=") (binary_expression "puVar27 + -8" (identifier "puVar27") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "local_e4 = local_e4 + 8;" (assignment_expression "local_e4 = local_e4 + 8" (identifier "local_e4") (= "=") (binary_expression "local_e4 + 8" (identifier "local_e4") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" (else "else") (compound_statement "{\n                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n                if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }\n                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);\n                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);\n                if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }\n              }" ({ "{") (expression_statement "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (unaff_s2 == (int *)0x0) {\n                  unaff_s2 = unaff_s6;\n                }" (if "if") (parenthesized_expression "(unaff_s2 == (int *)0x0)" (( "(") (binary_expression "unaff_s2 == (int *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  unaff_s2 = unaff_s6;\n                }" ({ "{") (expression_statement "unaff_s2 = unaff_s6;" (assignment_expression "unaff_s2 = unaff_s6" (identifier "unaff_s2") (= "=") (identifier "unaff_s6")) (; ";")) (} "}"))) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);" (assignment_expression "unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (identifier "unaff_s7") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(iVar25 + 1)" (( "(") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (unaff_s6 == (int *)0x0) {\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" (if "if") (parenthesized_expression "(unaff_s6 == (int *)0x0)" (( "(") (binary_expression "unaff_s6 == (int *)0x0" (identifier "unaff_s6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }\n                  goto LAB_000de200;\n                }" ({ "{") (if_statement "if (unaff_s7 == (int *)0x0) {\n                    bVar1 = true;\n                  }\n                  else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" (if "if") (parenthesized_expression "(unaff_s7 == (int *)0x0)" (( "(") (binary_expression "unaff_s7 == (int *)0x0" (identifier "unaff_s7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    bVar1 = true;\n                  }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" (else "else") (compound_statement "{\n                    (*(code *)PTR_free_001585ac)(unaff_s7);\n                    bVar1 = true;\n                  }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s7);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(unaff_s7)" (( "(") (identifier "unaff_s7") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")))) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (} "}"))) (} "}")))) (if_statement "if (unaff_s7 == (int *)0x0) {\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" (if "if") (parenthesized_expression "(unaff_s7 == (int *)0x0)" (( "(") (binary_expression "unaff_s7 == (int *)0x0" (identifier "unaff_s7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                (*(code *)PTR_free_001585ac)(unaff_s6);\n                bVar1 = true;\n                unaff_s7 = (int *)0x0;\n                goto LAB_000de200;\n              }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s6);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "unaff_s7 = (int *)0x0;" (assignment_expression "unaff_s7 = (int *)0x0" (identifier "unaff_s7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (} "}"))) (expression_statement "*unaff_s6 = (int)piVar7;" (assignment_expression "*unaff_s6 = (int)piVar7" (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) (= "=") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (; ";")) (expression_statement "unaff_s6[1] = (int)unaff_s7;" (assignment_expression "unaff_s6[1] = (int)unaff_s7" (subscript_expression "unaff_s6[1]" (identifier "unaff_s6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7"))) (; ";")) (expression_statement "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);" (assignment_expression "iVar25 = (*(code *)PTR_strlen_00158444)(piVar10)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(piVar10)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);" (call_expression "(*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_001585b8)" (( "(") (pointer_expression "*(code *)PTR_memmove_001585b8" (* "*") (cast_expression "(code *)PTR_memmove_001585b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_001585b8"))) () ")")) (argument_list "(unaff_s7,piVar10,iVar25 + 1)" (( "(") (identifier "unaff_s7") (, ",") (identifier "piVar10") (, ",") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" (identifier "piVar18") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "piVar7 = unaff_s6;" (assignment_expression "piVar7 = unaff_s6" (identifier "piVar7") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "unaff_s6 = (int *)PTR_interrupt_state_00156848;" (assignment_expression "unaff_s6 = (int *)PTR_interrupt_state_00156848" (identifier "unaff_s6") (= "=") (cast_expression "(int *)PTR_interrupt_state_00156848" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_interrupt_state_00156848"))) (; ";")) (expression_statement "piVar9 = (int *)PTR_terminating_signal_00156844;" (assignment_expression "piVar9 = (int *)PTR_terminating_signal_00156844" (identifier "piVar9") (= "=") (cast_expression "(int *)PTR_terminating_signal_00156844" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_terminating_signal_00156844"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (} "}")))) (goto_statement "goto LAB_000de914;" (goto "goto") (statement_identifier "LAB_000de914") (; ";")) (labeled_statement "LAB_000de7e4:\n  bVar1 = true;" (statement_identifier "LAB_000de7e4") (: ":") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";"))) (goto_statement "goto LAB_000de200;" (goto "goto") (statement_identifier "LAB_000de200") (; ";")) (labeled_statement "LAB_000df004:\n  puVar23 = puVar23 + 1;" (statement_identifier "LAB_000df004") (: ":") (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" (identifier "puVar23") (= "=") (binary_expression "puVar23 + 1" (identifier "puVar23") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pcVar19 = (char *)*puVar23;" (assignment_expression "pcVar19 = (char *)*puVar23" (identifier "pcVar19") (= "=") (cast_expression "(char *)*puVar23" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar23" (* "*") (identifier "puVar23")))) (; ";")) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar27 + -0x30)" (* "*") (cast_expression "(int **)(puVar27 + -0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (if_statement "if (pcVar19 == (char *)0x0) {\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" (if "if") (parenthesized_expression "(pcVar19 == (char *)0x0)" (( "(") (binary_expression "pcVar19 == (char *)0x0" (identifier "pcVar19") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }\n    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n    return piVar7;\n  }" ({ "{") (labeled_statement "LAB_000df34c:\n    if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" (statement_identifier "LAB_000df34c") (: ":") (if_statement "if (*piVar9 != 0) {\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" (if "if") (parenthesized_expression "(*piVar9 != 0)" (( "(") (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar28 = *(code **)(iVar25 + -0x5f94);\n      do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);\n    }" ({ "{") (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) (; ";")) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      } while (*piVar9 != 0);" (do "do") (compound_statement "{\n        piVar9 = piVar9 + 1;\n        (*pcVar28)();\n        iVar25 = *(int *)(puVar27 + -0x50);\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n      }" ({ "{") (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar9 != 0)" (( "(") (binary_expression "*piVar9 != 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" (( "(") (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")")))) () ")"))) (; ";")) (return_statement "return piVar7;" (return "return") (identifier "piVar7") (; ";")) (} "}"))) (goto_statement "goto LAB_000df010;" (goto "goto") (statement_identifier "LAB_000df010") (; ";")) (labeled_statement "joined_r0x000de570:\n  while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" (statement_identifier "joined_r0x000de570") (: ":") (while_statement "while (local_e0 != (int *)0x0) {\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" (while "while") (parenthesized_expression "(local_e0 != (int *)0x0)" (( "(") (binary_expression "local_e0 != (int *)0x0" (identifier "local_e0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_e0 = (int *)*local_e0;\n    (*(code *)PTR_free_001585ac)();\n  }" ({ "{") (expression_statement "local_e0 = (int *)*local_e0;" (assignment_expression "local_e0 = (int *)*local_e0" (identifier "local_e0") (= "=") (cast_expression "(int *)*local_e0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_e0" (* "*") (identifier "local_e0")))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)();" (call_expression "(*(code *)PTR_free_001585ac)()" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(local_f4);" (call_expression "(*(code *)PTR_free_001585ac)(local_f4)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(local_f4)" (( "(") (identifier "local_f4") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_000de200:\n  (*(code *)PTR_closedir_001582bc)(iVar3);" (statement_identifier "LAB_000de200") (: ":") (expression_statement "(*(code *)PTR_closedir_001582bc)(iVar3);" (call_expression "(*(code *)PTR_closedir_001582bc)(iVar3)" (parenthesized_expression "(*(code *)PTR_closedir_001582bc)" (( "(") (pointer_expression "*(code *)PTR_closedir_001582bc" (* "*") (cast_expression "(code *)PTR_closedir_001582bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_001582bc"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";"))) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" (identifier "unaff_s0") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (((uint)param_3 & 0x210) == 0x210) {\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }\n  else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((uint)param_3 & 0x210) == 0x210)" (( "(") (binary_expression "((uint)param_3 & 0x210) == 0x210" (parenthesized_expression "((uint)param_3 & 0x210)" (( "(") (binary_expression "(uint)param_3 & 0x210" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x210")) () ")")) (== "==") (number_literal "0x210")) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);\n    param_3 = (int *)(iVar3 + 1);\n    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);\n    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);\n    if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }\nLAB_000ddf10:\n    piVar7 = unaff_s0;\n    if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strlen_00158444)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00158444)(param_2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_00158444)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00158444)" (( "(") (pointer_expression "*(code *)PTR_strlen_00158444" (* "*") (cast_expression "(code *)PTR_strlen_00158444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00158444"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_3 = (int *)(iVar3 + 1);" (assignment_expression "param_3 = (int *)(iVar3 + 1)" (identifier "param_3") (= "=") (cast_expression "(int *)(iVar3 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);" (assignment_expression "param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3)" (identifier "param_1") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(param_3)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (expression_statement "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);" (assignment_expression "unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8)" (identifier "unaff_s0") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(8)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (unaff_s0 == (int *)0x0) {\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }\n    else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" (if "if") (parenthesized_expression "(unaff_s0 == (int *)0x0)" (( "(") (binary_expression "unaff_s0 == (int *)0x0" (identifier "unaff_s0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      unaff_s0 = piVar7;\n      if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }\n    }" ({ "{") (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" (identifier "unaff_s0") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (param_1 != (int *)0x0) {\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)PTR_free_001585ac)(param_1);\n      }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(param_1);" (call_expression "(*(code *)PTR_free_001585ac)(param_1)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" (else "else") (compound_statement "{\n      if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }\n      (*(code *)PTR_free_001585ac)(unaff_s0);\n      unaff_s0 = piVar7;\n    }" ({ "{") (if_statement "if (param_1 != (int *)0x0) {\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        unaff_s0[1] = (int)param_1;\n        *unaff_s0 = (int)piVar7;\n        if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }\n        unaff_s5 = unaff_s5 + 1;\n        piVar18 = param_2;\n        goto LAB_000ddf00;\n      }" ({ "{") (expression_statement "unaff_s0[1] = (int)param_1;" (assignment_expression "unaff_s0[1] = (int)param_1" (subscript_expression "unaff_s0[1]" (identifier "unaff_s0") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) (; ";")) (expression_statement "*unaff_s0 = (int)piVar7;" (assignment_expression "*unaff_s0 = (int)piVar7" (pointer_expression "*unaff_s0" (* "*") (identifier "unaff_s0")) (= "=") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (; ";")) (if_statement "if (uVar22 == 0) {\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }\n        else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);\n        }" ({ "{") (expression_statement "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);" (call_expression "(*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_memcpy_00158594)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00158594" (* "*") (cast_expression "(code *)PTR_memcpy_00158594" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00158594"))) () ")")) (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" (else "else") (compound_statement "{\n          *(undefined1 *)param_1 = 0;\n          param_2 = piVar18;\n        }" ({ "{") (expression_statement "*(undefined1 *)param_1 = 0;" (assignment_expression "*(undefined1 *)param_1 = 0" (pointer_expression "*(undefined1 *)param_1" (* "*") (cast_expression "(undefined1 *)param_1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = piVar18;" (assignment_expression "param_2 = piVar18" (identifier "param_2") (= "=") (identifier "piVar18")) (; ";")) (} "}")))) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar18 = param_2;" (assignment_expression "piVar18 = param_2" (identifier "piVar18") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_000ddf00;" (goto "goto") (statement_identifier "LAB_000ddf00") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s0);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "unaff_s0 = piVar7;" (assignment_expression "unaff_s0 = piVar7" (identifier "unaff_s0") (= "=") (identifier "piVar7")) (; ";")) (} "}")))) (labeled_statement "LAB_000ddf10:\n    piVar7 = unaff_s0;" (statement_identifier "LAB_000ddf10") (: ":") (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" (identifier "piVar7") (= "=") (identifier "unaff_s0")) (; ";"))) (if_statement "if (unaff_s0 == (int *)0x0) {\n      piVar7 = (int *)0x0;\n    }\n    else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" (if "if") (parenthesized_expression "(unaff_s0 == (int *)0x0)" (( "(") (binary_expression "unaff_s0 == (int *)0x0" (identifier "unaff_s0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar7 = (int *)0x0;\n    }" ({ "{") (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" (identifier "piVar7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" (else "else") (compound_statement "{\n      do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);\n    }" ({ "{") (do_statement "do {\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      } while (piVar7 != (int *)0x0);" (do "do") (compound_statement "{\n        if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }\n      }" ({ "{") (if_statement "if (unaff_s2 == (int *)0x0) {\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }\n        else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" (if "if") (parenthesized_expression "(unaff_s2 == (int *)0x0)" (( "(") (binary_expression "unaff_s2 == (int *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          piVar7 = (int *)*piVar7;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar7[1])" (( "(") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "piVar7 = (int *)*piVar7;" (assignment_expression "piVar7 = (int *)*piVar7" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")))) (; ";")) (} "}")) (else_clause "else {\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" (else "else") (compound_statement "{\n          if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }\n          (*(code *)PTR_free_001585ac)(piVar7[1]);\n          unaff_s0 = (int *)*piVar7;\n          (*(code *)PTR_free_001585ac)(piVar7);\n          piVar7 = unaff_s0;\n        }" ({ "{") (if_statement "if (piVar7 == unaff_s2) {\n            unaff_s2 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(piVar7 == unaff_s2)" (( "(") (binary_expression "piVar7 == unaff_s2" (identifier "piVar7") (== "==") (identifier "unaff_s2")) () ")")) (compound_statement "{\n            unaff_s2 = (int *)0x0;\n          }" ({ "{") (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7[1]);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7[1])" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar7[1])" (( "(") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "unaff_s0 = (int *)*piVar7;" (assignment_expression "unaff_s0 = (int *)*piVar7" (identifier "unaff_s0") (= "=") (cast_expression "(int *)*piVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(piVar7);" (call_expression "(*(code *)PTR_free_001585ac)(piVar7)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "piVar7 = unaff_s0;" (assignment_expression "piVar7 = unaff_s0" (identifier "piVar7") (= "=") (identifier "unaff_s0")) (; ";")) (} "}")))) (} "}")) (while "while") (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"))) () ")")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" (else "else") (compound_statement "{\nLAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;\n    param_1 = (int *)((unaff_s5 + 1) * 4);\n    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);\n    if (piVar7 == (int *)0x0) goto LAB_000ddf10;\n    if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }\n    param_1 = piVar7 + unaff_s5 + 1;\n    param_1[-1] = 0;\n    piVar9 = unaff_s0;\n    if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_000ddf00:\n    if (bVar1) goto LAB_000ddf10;" (statement_identifier "LAB_000ddf00") (: ":") (if_statement "if (bVar1) goto LAB_000ddf10;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_000ddf10;" (goto "goto") (statement_identifier "LAB_000ddf10") (; ";")))) (expression_statement "param_1 = (int *)((unaff_s5 + 1) * 4);" (assignment_expression "param_1 = (int *)((unaff_s5 + 1) * 4)" (identifier "param_1") (= "=") (cast_expression "(int *)((unaff_s5 + 1) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((unaff_s5 + 1) * 4)" (( "(") (binary_expression "(unaff_s5 + 1) * 4" (parenthesized_expression "(unaff_s5 + 1)" (( "(") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0015849c)(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0015849c)(param_1)" (parenthesized_expression "(*(code *)PTR_malloc_0015849c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0015849c" (* "*") (cast_expression "(code *)PTR_malloc_0015849c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0015849c"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000ddf10;" (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"))) () ")")) (goto_statement "goto LAB_000ddf10;" (goto "goto") (statement_identifier "LAB_000ddf10") (; ";"))) (if_statement "if (unaff_s5 != 0) {\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" (if "if") (parenthesized_expression "(unaff_s5 != 0)" (( "(") (binary_expression "unaff_s5 != 0" (identifier "unaff_s5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);\n      piVar9 = piVar7;\n      piVar10 = unaff_s0;\n      do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);\n    }" ({ "{") (expression_statement "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);" (assignment_expression "piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)(param_1 + -1) + (int)piVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(param_1 + -1) + (int)piVar7)" (( "(") (binary_expression "(int)(param_1 + -1) + (int)piVar7" (cast_expression "(int)(param_1 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + -1)" (( "(") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1")) () ")"))) (+ "+") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) () ")")))) (; ";")) (expression_statement "piVar9 = piVar7;" (assignment_expression "piVar9 = piVar7" (identifier "piVar9") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "piVar10 = unaff_s0;" (assignment_expression "piVar10 = unaff_s0" (identifier "piVar10") (= "=") (identifier "unaff_s0")) (; ";")) (do_statement "do {\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      } while (piVar18 != piVar9);" (do "do") (compound_statement "{\n        *piVar9 = piVar10[1];\n        piVar9 = piVar9 + 1;\n        piVar10 = (int *)*piVar10;\n      }" ({ "{") (expression_statement "*piVar9 = piVar10[1];" (assignment_expression "*piVar9 = piVar10[1]" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar10 = (int *)*piVar10;" (assignment_expression "piVar10 = (int *)*piVar10" (identifier "piVar10") (= "=") (cast_expression "(int *)*piVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar18 != piVar9)" (( "(") (binary_expression "piVar18 != piVar9" (identifier "piVar18") (!= "!=") (identifier "piVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "param_1 = piVar7 + unaff_s5 + 1;" (assignment_expression "param_1 = piVar7 + unaff_s5 + 1" (identifier "param_1") (= "=") (binary_expression "piVar7 + unaff_s5 + 1" (binary_expression "piVar7 + unaff_s5" (identifier "piVar7") (+ "+") (identifier "unaff_s5")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[-1] = 0;" (assignment_expression "param_1[-1] = 0" (subscript_expression "param_1[-1]" (identifier "param_1") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9 = unaff_s0;" (assignment_expression "piVar9 = unaff_s0" (identifier "piVar9") (= "=") (identifier "unaff_s0")) (; ";")) (if_statement "if (unaff_s2 != (int *)0x0) {\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" (if "if") (parenthesized_expression "(unaff_s2 != (int *)0x0)" (( "(") (binary_expression "unaff_s2 != (int *)0x0" (identifier "unaff_s2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }\n    }" ({ "{") (while_statement "while (piVar9 != (int *)0x0) {\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" (while "while") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        unaff_s0 = piVar9;\n        if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }\n        param_1 = (int *)*piVar9;\n        (*(code *)PTR_free_001585ac)(piVar9);\n        piVar9 = param_1;\n      }" ({ "{") (expression_statement "unaff_s0 = piVar9;" (assignment_expression "unaff_s0 = piVar9" (identifier "unaff_s0") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (piVar9 == unaff_s2) {\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" (if "if") (parenthesized_expression "(piVar9 == unaff_s2)" (( "(") (binary_expression "piVar9 == unaff_s2" (identifier "piVar9") (== "==") (identifier "unaff_s2")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001585ac)(unaff_s2);\n          break;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001585ac)(unaff_s2);" (call_expression "(*(code *)PTR_free_001585ac)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "param_1 = (int *)*piVar9;" (assignment_expression "param_1 = (int *)*piVar9" (identifier "param_1") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "(*(code *)PTR_free_001585ac)(piVar9);" (call_expression "(*(code *)PTR_free_001585ac)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_001585ac)" (( "(") (pointer_expression "*(code *)PTR_free_001585ac" (* "*") (cast_expression "(code *)PTR_free_001585ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001585ac"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "piVar9 = param_1;" (assignment_expression "piVar9 = param_1" (identifier "piVar9") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000de914:\n  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" (statement_identifier "LAB_000de914") (: ":") (if_statement "if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {\n    return piVar7;\n  }" (if "if") (parenthesized_expression "(local_2c == *(char **)PTR___stack_chk_guard_0015858c)" (( "(") (binary_expression "local_2c == *(char **)PTR___stack_chk_guard_0015858c" (identifier "local_2c") (== "==") (pointer_expression "*(char **)PTR___stack_chk_guard_0015858c" (* "*") (cast_expression "(char **)PTR___stack_chk_guard_0015858c" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0015858c")))) () ")")) (compound_statement "{\n    return piVar7;\n  }" ({ "{") (return_statement "return piVar7;" (return "return") (identifier "piVar7") (; ";")) (} "}")))) (expression_statement "pcVar28 = glob_filename;" (assignment_expression "pcVar28 = glob_filename" (identifier "pcVar28") (= "=") (identifier "glob_filename")) (; ";")) (expression_statement "pcVar19 = local_2c;" (assignment_expression "pcVar19 = local_2c" (identifier "pcVar19") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0015853c" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_0015853c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015853c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015853c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code **)(puVar27 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar27 + -4) = pcVar28" (pointer_expression "*(code **)(puVar27 + -4)" (* "*") (cast_expression "(code **)(puVar27 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -4)" (( "(") (binary_expression "puVar27 + -4" (identifier "puVar27") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar28")) (; ";")) (expression_statement "*(undefined1 **)(puVar27 + -8) = local_128;" (assignment_expression "*(undefined1 **)(puVar27 + -8) = local_128" (pointer_expression "*(undefined1 **)(puVar27 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar27 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -8)" (( "(") (binary_expression "puVar27 + -8" (identifier "puVar27") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_128")) (; ";")) (expression_statement "*(int **)(puVar27 + -0xc) = unaff_s7;" (assignment_expression "*(int **)(puVar27 + -0xc) = unaff_s7" (pointer_expression "*(int **)(puVar27 + -0xc)" (* "*") (cast_expression "(int **)(puVar27 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0xc)" (( "(") (binary_expression "puVar27 + -0xc" (identifier "puVar27") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x10) = unaff_s6;" (assignment_expression "*(int **)(puVar27 + -0x10) = unaff_s6" (pointer_expression "*(int **)(puVar27 + -0x10)" (* "*") (cast_expression "(int **)(puVar27 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x10)" (( "(") (binary_expression "puVar27 + -0x10" (identifier "puVar27") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(uint *)(puVar27 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(puVar27 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(puVar27 + -0x14)" (* "*") (cast_expression "(uint *)(puVar27 + -0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x14)" (( "(") (binary_expression "puVar27 + -0x14" (identifier "puVar27") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x18) = param_3;" (assignment_expression "*(int **)(puVar27 + -0x18) = param_3" (pointer_expression "*(int **)(puVar27 + -0x18)" (* "*") (cast_expression "(int **)(puVar27 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x18)" (( "(") (binary_expression "puVar27 + -0x18" (identifier "puVar27") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x1c) = param_1;" (assignment_expression "*(int **)(puVar27 + -0x1c) = param_1" (pointer_expression "*(int **)(puVar27 + -0x1c)" (* "*") (cast_expression "(int **)(puVar27 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x1c)" (( "(") (binary_expression "puVar27 + -0x1c" (identifier "puVar27") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x20) = unaff_s2;" (assignment_expression "*(int **)(puVar27 + -0x20) = unaff_s2" (pointer_expression "*(int **)(puVar27 + -0x20)" (* "*") (cast_expression "(int **)(puVar27 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x20)" (( "(") (binary_expression "puVar27 + -0x20" (identifier "puVar27") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x24) = piVar7;" (assignment_expression "*(int **)(puVar27 + -0x24) = piVar7" (pointer_expression "*(int **)(puVar27 + -0x24)" (* "*") (cast_expression "(int **)(puVar27 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x24)" (( "(") (binary_expression "puVar27 + -0x24" (identifier "puVar27") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(int **)(puVar27 + -0x28) = unaff_s0;" (assignment_expression "*(int **)(puVar27 + -0x28) = unaff_s0" (pointer_expression "*(int **)(puVar27 + -0x28)" (* "*") (cast_expression "(int **)(puVar27 + -0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x28)" (( "(") (binary_expression "puVar27 + -0x28" (identifier "puVar27") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;" (assignment_expression "*(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c" (pointer_expression "*(undefined **)(puVar27 + -0x50)" (* "*") (cast_expression "(undefined **)(puVar27 + -0x50)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (binary_expression "puVar24 + 0x7fb4c" (identifier "puVar24") (+ "+") (number_literal "0x7fb4c"))) (; ";")) (expression_statement "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(puVar24 + 0x79aa8))(4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar24 + 0x79aa8))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x79aa8))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x79aa8)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x79aa8)" (* "*") (cast_expression "(code **)(puVar24 + 0x79aa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x79aa8)" (( "(") (binary_expression "puVar24 + 0x79aa8" (identifier "puVar24") (+ "+") (number_literal "0x79aa8")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x50)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n    return (int *)0x0;\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    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f)" (parenthesized_expression "(**(code **)(iVar3 + -0x61d4))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x61d4)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x61d4)" (* "*") (cast_expression "(code **)(iVar3 + -0x61d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x61d4)" (( "(") (binary_expression "iVar3 + -0x61d4" (identifier "iVar3") (+ "+") (number_literal "-0x61d4")) () ")"))))) () ")")) (argument_list "(pcVar19,0x2f)" (( "(") (identifier "pcVar19") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }\n  else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000deb88:\n    iVar3 = 0;\n    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\nLAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }\n    (**(code **)(iVar25 + -0x5f94))();\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\nLAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }\n    if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }\n  }" ({ "{") (labeled_statement "LAB_000deb88:\n    iVar3 = 0;" (statement_identifier "LAB_000deb88") (: ":") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";"))) (expression_statement "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "__pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (identifier "__pattern") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x47a0")) () ")")))) (; ";")) (labeled_statement "LAB_000deb94:\n    if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" (statement_identifier "LAB_000deb94") (: ":") (if_statement "if (*pcVar19 == '\0') {\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(*pcVar19 == '\0')" (( "(") (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }\n      uVar21 = 0;\nLAB_000df634:\n      iVar17 = uVar21 + 1;\nLAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *piVar7 = iVar26;\n      if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }\nLAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\nLAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }\n      (*pcVar28)();\n      return (int *)0x0;\n    }" ({ "{") (expression_statement "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(iVar25 + -0x6098))(piVar7,8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x6098)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x6098)" (* "*") (cast_expression "(code **)(iVar25 + -0x6098)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x6098)" (( "(") (binary_expression "iVar25 + -0x6098" (identifier "iVar25") (+ "+") (number_literal "-0x6098")) () ")"))))) () ")")) (argument_list "(piVar7,8)" (( "(") (identifier "piVar7") (, ",") (number_literal "8") () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\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        if (iVar3 == 0) {\n          return (int *)0x0;\n        }\nLAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);\n        return (int *)0x0;\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          return (int *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return (int *)0x0;\n        }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (labeled_statement "LAB_000df3a4:\n        (**(code **)(iVar26 + -0x5f94))(__pattern);" (statement_identifier "LAB_000df3a4") (: ":") (expression_statement "(**(code **)(iVar26 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar26 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar26 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar26 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar26 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar26 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + -0x5f94)" (( "(") (binary_expression "iVar26 + -0x5f94" (identifier "iVar26") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";"))) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000df634:\n      iVar17 = uVar21 + 1;" (statement_identifier "LAB_000df634") (: ":") (expression_statement "iVar17 = uVar21 + 1;" (assignment_expression "iVar17 = uVar21 + 1" (identifier "iVar17") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_000df638:\n      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" (statement_identifier "LAB_000df638") (: ":") (expression_statement "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);" (assignment_expression "iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17)" (identifier "iVar26") (= "=") (call_expression "(**(code **)(iVar26 + -0x60a4))(iVar17)" (parenthesized_expression "(**(code **)(iVar26 + -0x60a4))" (( "(") (pointer_expression "**(code **)(iVar26 + -0x60a4)" (* "*") (pointer_expression "*(code **)(iVar26 + -0x60a4)" (* "*") (cast_expression "(code **)(iVar26 + -0x60a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + -0x60a4)" (( "(") (binary_expression "iVar26 + -0x60a4" (identifier "iVar26") (+ "+") (number_literal "-0x60a4")) () ")"))))) () ")")) (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")")))) (; ";"))) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*piVar7 = iVar26;" (assignment_expression "*piVar7 = iVar26" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (iVar26 != 0) {\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" (if "if") (parenthesized_expression "(iVar26 != 0)" (( "(") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);\n        if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        piVar7[1] = 0;\n        return piVar7;\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);" (call_expression "(**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17)" (parenthesized_expression "(**(code **)(iVar25 + -0x5fac))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5fac)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5fac)" (* "*") (cast_expression "(code **)(iVar25 + -0x5fac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5fac)" (( "(") (binary_expression "iVar25 + -0x5fac" (identifier "iVar25") (+ "+") (number_literal "-0x5fac")) () ")"))))) () ")")) (argument_list "(iVar26,__pattern,iVar17)" (( "(") (identifier "iVar26") (, ",") (identifier "__pattern") (, ",") (identifier "iVar17") () ")"))) (; ";")) (if_statement "if (iVar3 == 0) {\n          piVar7[1] = 0;\n          return piVar7;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar7[1] = 0;\n          return piVar7;\n        }" ({ "{") (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return piVar7;" (return "return") (identifier "piVar7") (; ";")) (} "}"))) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "piVar7[1] = 0;" (assignment_expression "piVar7[1] = 0" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return piVar7;" (return "return") (identifier "piVar7") (; ";")) (} "}"))) (labeled_statement "LAB_000df2ac:\n      (**(code **)(iVar25 + -0x5f94))(piVar7);" (statement_identifier "LAB_000df2ac") (: ":") (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";"))) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if ((iVar3 == 0) || (__pattern == (char *)0x0)) {\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" (if "if") (parenthesized_expression "((iVar3 == 0) || (__pattern == (char *)0x0))" (( "(") (binary_expression "(iVar3 == 0) || (__pattern == (char *)0x0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(__pattern == (char *)0x0)" (( "(") (binary_expression "__pattern == (char *)0x0" (identifier "__pattern") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" ({ "{") (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" (else "else") (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(__pattern);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_000df2c8:\n      if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" (statement_identifier "LAB_000df2c8") (: ":") (if_statement "if (*piVar18 == 0) {\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" (if "if") (parenthesized_expression "(*piVar18 == 0)" (( "(") (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" ({ "{") (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cf8)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cf8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf8)" (( "(") (binary_expression "iVar25 + -0x7cf8" (identifier "iVar25") (+ "+") (number_literal "-0x7cf8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" (else "else") (compound_statement "{\n        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n        iVar25 = *(int *)(puVar27 + -0x50);\n        piVar18 = *(int **)(iVar25 + -0x7cf8);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7ce8)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7ce8)" (* "*") (cast_expression "(code **)(iVar25 + -0x7ce8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7ce8)" (( "(") (binary_expression "iVar25 + -0x7ce8" (identifier "iVar25") (+ "+") (number_literal "-0x7ce8")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" (( "(") (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" (* "*") (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cf8)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cf8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf8)" (( "(") (binary_expression "iVar25 + -0x7cf8" (identifier "iVar25") (+ "+") (number_literal "-0x7cf8")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (*piVar18 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }\n      else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" (if "if") (parenthesized_expression "(*piVar18 == 0)" (( "(") (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x7d20);\n      }" ({ "{") (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7d20)" (* "*") (cast_expression "(code **)(iVar25 + -0x7d20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7d20)" (( "(") (binary_expression "iVar25 + -0x7d20" (identifier "iVar25") (+ "+") (number_literal "-0x7d20")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" (else "else") (compound_statement "{\n        (**(code **)(iVar25 + -0x7cf4))();\n        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7cf4)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7cf4)" (* "*") (cast_expression "(code **)(iVar25 + -0x7cf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf4)" (( "(") (binary_expression "iVar25 + -0x7cf4" (identifier "iVar25") (+ "+") (number_literal "-0x7cf4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x7d20")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))) (expression_statement "(**(code **)(iVar25 + -0x5f94))();" (call_expression "(**(code **)(iVar25 + -0x5f94))()" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe | 0x100" (identifier "uVar22") (= "=") (binary_expression "(uint)piVar18 & 0xfffffffe | 0x100" (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0xfffffffe")) (| "|") (number_literal "0x100"))) (; ";")) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" (identifier "uVar13") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }\n    else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" (( "(") (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" (( "(") (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" ({ "{") (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x5e18")) () ")")))) (; ";")) (} "}")) (else_clause "else if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" (else "else") (if_statement "if (*pcVar19 == '*') {\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }\n    else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" (if "if") (parenthesized_expression "(*pcVar19 == '*')" (( "(") (binary_expression "*pcVar19 == '*'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n      uVar21 = 0;\nLAB_000df42c:\n      pcVar8 = __pattern;\n      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n    }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000df42c:\n      pcVar8 = __pattern;" (statement_identifier "LAB_000df42c") (: ":") (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" (identifier "pcVar8") (= "=") (identifier "__pattern")) (; ";"))) (if_statement "if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }\n      else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" (if "if") (parenthesized_expression "((pcVar19[1] == '*') && (pcVar19[2] == '\0'))" (( "(") (binary_expression "(pcVar19[1] == '*') && (pcVar19[2] == '\0')" (parenthesized_expression "(pcVar19[1] == '*')" (( "(") (binary_expression "pcVar19[1] == '*'" (subscript_expression "pcVar19[1]" (identifier "pcVar19") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar19[2] == '\0')" (( "(") (binary_expression "pcVar19[2] == '\0'" (subscript_expression "pcVar19[2]" (identifier "pcVar19") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        uVar13 = uVar22 | 0x210;\n        if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" ({ "{") (expression_statement "uVar13 = uVar22 | 0x210;" (assignment_expression "uVar13 = uVar22 | 0x210" (identifier "uVar13") (= "=") (binary_expression "uVar22 | 0x210" (identifier "uVar22") (| "|") (number_literal "0x210"))) (; ";")) (if_statement "if (uVar21 == 0) {\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" ({ "{") (if_statement "if (((uint)piVar18 & 0x10) == 0) {\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x10) == 0)" (( "(") (binary_expression "((uint)piVar18 & 0x10) == 0" (parenthesized_expression "((uint)piVar18 & 0x10)" (( "(") (binary_expression "(uint)piVar18 & 0x10" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = uVar22 & 0xfffffdff | 0x10;\n          }" ({ "{") (expression_statement "uVar13 = uVar22 & 0xfffffdff | 0x10;" (assignment_expression "uVar13 = uVar22 & 0xfffffdff | 0x10" (identifier "uVar13") (= "=") (binary_expression "uVar22 & 0xfffffdff | 0x10" (binary_expression "uVar22 & 0xfffffdff" (identifier "uVar22") (& "&") (number_literal "0xfffffdff")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x5e18")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" (else "else") (compound_statement "{\n        uVar13 = uVar22;\n        if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }\n      }" ({ "{") (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" (identifier "uVar13") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (uVar21 == 0) {\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n        }" ({ "{") (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x5e18")) () ")")))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" (else "else") (compound_statement "{\n      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);\n    }" ({ "{") (expression_statement "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);" (assignment_expression "pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x5e18)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x5e18" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x5e18")) () ")")))) (; ";")) (} "}")))))) (labeled_statement "LAB_000debcc:\n    piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" (statement_identifier "LAB_000debcc") (: ":") (expression_statement "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar19,pcVar8,uVar13)" (identifier "piVar7") (= "=") (cast_expression "(int *)glob_vector(pcVar19,pcVar8,uVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "glob_vector(pcVar19,pcVar8,uVar13)" (identifier "glob_vector") (argument_list "(pcVar19,pcVar8,uVar13)" (( "(") (identifier "pcVar19") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar13") () ")"))))) (; ";"))) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\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 "{\nLAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }\n    }" ({ "{") (labeled_statement "LAB_000debec:\n      if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" (statement_identifier "LAB_000debec") (: ":") (if_statement "if (piVar7 != *(int **)(iVar25 + -0x7174)) {\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" (if "if") (parenthesized_expression "(piVar7 != *(int **)(iVar25 + -0x7174))" (( "(") (binary_expression "piVar7 != *(int **)(iVar25 + -0x7174)" (identifier "piVar7") (!= "!=") (pointer_expression "*(int **)(iVar25 + -0x7174)" (* "*") (cast_expression "(int **)(iVar25 + -0x7174)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7174)" (( "(") (binary_expression "iVar25 + -0x7174" (identifier "iVar25") (+ "+") (number_literal "-0x7174")) () ")"))))) () ")")) (compound_statement "{\n        pcVar19 = __pattern;\n        if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }\n        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);\n        if (iVar3 == 0) {\n          return piVar18;\n        }\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n        return piVar18;\n      }" ({ "{") (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" (identifier "pcVar19") (= "=") (identifier "__pattern")) (; ";")) (if_statement "if ((uVar13 & 0x10) != 0) {\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" (if "if") (parenthesized_expression "((uVar13 & 0x10) != 0)" (( "(") (binary_expression "(uVar13 & 0x10) != 0" (parenthesized_expression "(uVar13 & 0x10)" (( "(") (binary_expression "uVar13 & 0x10" (identifier "uVar13") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);\n        }" ({ "{") (expression_statement "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);" (assignment_expression "pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (identifier "pcVar19") (= "=") (cast_expression "(char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + -0x7f90) + -0x47a0)" (( "(") (binary_expression "*(int *)(iVar25 + -0x7f90) + -0x47a0" (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")")))) (+ "+") (number_literal "-0x47a0")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);" (assignment_expression "piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" (identifier "piVar18") (= "=") (cast_expression "(int *)FUN_000dd6dc(pcVar19,piVar7,piVar18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000dd6dc(pcVar19,piVar7,piVar18)" (identifier "FUN_000dd6dc") (argument_list "(pcVar19,piVar7,piVar18)" (( "(") (identifier "pcVar19") (, ",") (identifier "piVar7") (, ",") (identifier "piVar18") () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n          return piVar18;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return piVar18;\n        }" ({ "{") (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}")))) (} "}"))) (if_statement "if (iVar3 == 0) {\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar18 = *(int **)(iVar25 + -0x7cfc);\n      goto LAB_000df4b0;\n    }" ({ "{") (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) (; ";")) (goto_statement "goto LAB_000df4b0;" (goto "goto") (statement_identifier "LAB_000df4b0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" (else "else") (compound_statement "{\n    if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }\n    iVar17 = iVar3 - (int)pcVar19;\n    uVar21 = iVar17 + 1;\n    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);\n    if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    __pattern[uVar21] = '\0';\n    pcVar20 = (char *)(iVar3 + 1);\n    if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }\n    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);\n    if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }\n    if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }\n    FUN_000ddacc(__pattern);\n    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    uVar22 = (uint)piVar18 & 0xfffffffe;\n    uVar13 = uVar22;\n    if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }\n    piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);\n    iVar25 = *(int *)(puVar27 + -0x50);\n    if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\n    }\n  }" ({ "{") (if_statement "if (**(int **)(iVar25 + -0x7bf8) != 0) {\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" (if "if") (parenthesized_expression "(**(int **)(iVar25 + -0x7bf8) != 0)" (( "(") (binary_expression "**(int **)(iVar25 + -0x7bf8) != 0" (pointer_expression "**(int **)(iVar25 + -0x7bf8)" (* "*") (pointer_expression "*(int **)(iVar25 + -0x7bf8)" (* "*") (cast_expression "(int **)(iVar25 + -0x7bf8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7bf8)" (( "(") (binary_expression "iVar25 + -0x7bf8" (identifier "iVar25") (+ "+") (number_literal "-0x7bf8")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = glob_dirscan(pcVar19,0x2f);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar3 == 0) goto LAB_000deb88;\n    }" ({ "{") (expression_statement "iVar3 = glob_dirscan(pcVar19,0x2f);" (assignment_expression "iVar3 = glob_dirscan(pcVar19,0x2f)" (identifier "iVar3") (= "=") (call_expression "glob_dirscan(pcVar19,0x2f)" (identifier "glob_dirscan") (argument_list "(pcVar19,0x2f)" (( "(") (identifier "pcVar19") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_000deb88;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000deb88;" (goto "goto") (statement_identifier "LAB_000deb88") (; ";"))) (} "}"))) (expression_statement "iVar17 = iVar3 - (int)pcVar19;" (assignment_expression "iVar17 = iVar3 - (int)pcVar19" (identifier "iVar17") (= "=") (binary_expression "iVar3 - (int)pcVar19" (identifier "iVar3") (- "-") (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19")))) (; ";")) (expression_statement "uVar21 = iVar17 + 1;" (assignment_expression "uVar21 = iVar17 + 1" (identifier "uVar21") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);" (assignment_expression "__pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" (identifier "__pattern") (= "=") (cast_expression "(char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar25 + -0x60a4))(iVar17 + 2)" (parenthesized_expression "(**(code **)(iVar25 + -0x60a4))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x60a4)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x60a4)" (* "*") (cast_expression "(code **)(iVar25 + -0x60a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x60a4)" (( "(") (binary_expression "iVar25 + -0x60a4" (identifier "iVar25") (+ "+") (number_literal "-0x60a4")) () ")"))))) () ")")) (argument_list "(iVar17 + 2)" (( "(") (binary_expression "iVar17 + 2" (identifier "iVar17") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (__pattern == (char *)0x0) {\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(__pattern == (char *)0x0)" (( "(") (binary_expression "__pattern == (char *)0x0" (identifier "__pattern") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n      return (int *)0x0;\n    }" ({ "{") (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5fac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5fac)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5fac" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5fac")) () ")"))))) () ")")) (argument_list "(__pattern,pcVar19,uVar21)" (( "(") (identifier "__pattern") (, ",") (identifier "pcVar19") (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "__pattern[uVar21] = '\0';" (assignment_expression "__pattern[uVar21] = '\0'" (subscript_expression "__pattern[uVar21]" (identifier "__pattern") ([ "[") (identifier "uVar21") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar20 = (char *)(iVar3 + 1);" (assignment_expression "pcVar20 = (char *)(iVar3 + 1)" (identifier "pcVar20") (= "=") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar21 == 0) {\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = 1;\n      pcVar19 = pcVar20;\n      goto LAB_000deb94;\n    }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" (identifier "pcVar19") (= "=") (identifier "pcVar20")) (; ";")) (goto_statement "goto LAB_000deb94;" (goto "goto") (statement_identifier "LAB_000deb94") (; ";")) (} "}"))) (expression_statement "iVar25 = glob_pattern_p(__pattern,(int)pcVar19);" (assignment_expression "iVar25 = glob_pattern_p(__pattern,(int)pcVar19)" (identifier "iVar25") (= "=") (call_expression "glob_pattern_p(__pattern,(int)pcVar19)" (identifier "glob_pattern_p") (argument_list "(__pattern,(int)pcVar19)" (( "(") (identifier "__pattern") (, ",") (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19")) () ")")))) (; ";")) (if_statement "if (iVar25 == 1) {\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" (if "if") (parenthesized_expression "(iVar25 == 1)" (( "(") (binary_expression "iVar25 == 1" (identifier "iVar25") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      uVar13 = (uint)piVar18 & 0xfffffffe;\n      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;\n      pcVar19 = __pattern;\n      if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }\nLAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }\n      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);\n      *(int *)(puVar27 + -0x30) = iVar17;\n      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }\n      if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }\n      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);\n      if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }\n      puVar23 = *(undefined4 **)(puVar27 + -0x30);\n      if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }\n      iVar17 = *(int *)(iVar25 + -0x7f90);\nLAB_000def94:\n      iVar26 = 1;\n      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;\n      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);\n      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;\nLAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;\n      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }\n      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      if (piVar9 == (int *)0x0) goto LAB_000df26c;\n      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;\n      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;\n      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }\n      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);\n      iVar25 = *(int *)(puVar27 + -0x50);\n      *(int *)(puVar27 + -0x48) = iVar17;\n      if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }\n      iVar17 = *piVar10;\n      if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }\n      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;\n      if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }\n      piVar7 = *(int **)(puVar27 + -0x48);\n      if (iVar17 == 0) goto LAB_000df004;\n      piVar9 = *(int **)(puVar27 + -0x30);\n      goto LAB_000df34c;\n    }" ({ "{") (expression_statement "uVar13 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar13 = (uint)piVar18 & 0xfffffffe" (identifier "uVar13") (= "=") (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;" (assignment_expression "*(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400" (pointer_expression "*(uint *)(puVar27 + -0x44)" (* "*") (cast_expression "(uint *)(puVar27 + -0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x44)" (( "(") (binary_expression "puVar27 + -0x44" (identifier "puVar27") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x400"))) (; ";")) (expression_statement "pcVar19 = __pattern;" (assignment_expression "pcVar19 = __pattern" (identifier "pcVar19") (= "=") (identifier "__pattern")) (; ";")) (if_statement "if (((uint)piVar18 & 0x400) == 0) {\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }\n      else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x400) == 0)" (( "(") (binary_expression "((uint)piVar18 & 0x400) == 0" (parenthesized_expression "((uint)piVar18 & 0x400)" (( "(") (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44)" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar27 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x44)" (( "(") (binary_expression "puVar27 + -0x44" (identifier "puVar27") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" (else "else") (compound_statement "{\n        if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }\n        uVar16 = uVar21;\n        uVar22 = uVar21;\n        if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }\n        bVar1 = uVar22 != uVar21;\n        uVar21 = uVar16;\n        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }\n      }" ({ "{") (if_statement "if (*__pattern == '*') {\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }\n        else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" (if "if") (parenthesized_expression "(*__pattern == '*')" (( "(") (binary_expression "*__pattern == '*'" (pointer_expression "*__pattern" (* "*") (identifier "__pattern")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n          if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }\n        }" ({ "{") (if_statement "if (__pattern[1] == '*') {\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }\n          else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" (if "if") (parenthesized_expression "(__pattern[1] == '*')" (( "(") (binary_expression "__pattern[1] == '*'" (subscript_expression "__pattern[1]" (identifier "__pattern") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n            pcVar8 = __pattern;\n            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }\n          }" ({ "{") (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" (identifier "pcVar8") (= "=") (identifier "__pattern")) (; ";")) (if_statement "if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }\n            else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" (if "if") (parenthesized_expression "((__pattern[2] == '/') || (__pattern[2] == '\0'))" (( "(") (binary_expression "(__pattern[2] == '/') || (__pattern[2] == '\0')" (parenthesized_expression "(__pattern[2] == '/')" (( "(") (binary_expression "__pattern[2] == '/'" (subscript_expression "__pattern[2]" (identifier "__pattern") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(__pattern[2] == '\0')" (( "(") (binary_expression "__pattern[2] == '\0'" (subscript_expression "__pattern[2]" (identifier "__pattern") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');\n              cVar2 = *pcVar8;\nLAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;\n              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);\n              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);\n              uVar13 = uVar13 | 0x210;\n              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;\n            }" ({ "{") (do_statement "do {\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              } while (*pcVar8 == '*');" (do "do") (compound_statement "{\n                pcVar15 = pcVar8;\n                pcVar8 = pcVar15;\n                if (pcVar15[1] != '*') break;\n                if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }\n                pcVar19 = pcVar15;\n              }" ({ "{") (expression_statement "pcVar15 = pcVar8;" (assignment_expression "pcVar15 = pcVar8" (identifier "pcVar15") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "pcVar8 = pcVar15;" (assignment_expression "pcVar8 = pcVar15" (identifier "pcVar8") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if (pcVar15[1] != '*') break;" (if "if") (parenthesized_expression "(pcVar15[1] != '*')" (( "(") (binary_expression "pcVar15[1] != '*'" (subscript_expression "pcVar15[1]" (identifier "pcVar15") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (pcVar15[2] == '/') {\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }\n                else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" (if "if") (parenthesized_expression "(pcVar15[2] == '/')" (( "(") (binary_expression "pcVar15[2] == '/'" (subscript_expression "pcVar15[2]" (identifier "pcVar15") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                  pcVar8 = pcVar15 + 3;\n                  cVar2 = pcVar15[3];\n                  while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }\n                  pcVar19 = pcVar15;\n                  if (cVar2 == '\0') break;\n                }" ({ "{") (expression_statement "pcVar8 = pcVar15 + 3;" (assignment_expression "pcVar8 = pcVar15 + 3" (identifier "pcVar8") (= "=") (binary_expression "pcVar15 + 3" (identifier "pcVar15") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "cVar2 = pcVar15[3];" (assignment_expression "cVar2 = pcVar15[3]" (identifier "cVar2") (= "=") (subscript_expression "pcVar15[3]" (identifier "pcVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (while_statement "while (cVar2 == '/') {\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" (while "while") (parenthesized_expression "(cVar2 == '/')" (( "(") (binary_expression "cVar2 == '/'" (identifier "cVar2") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                    pcVar8 = pcVar8 + 1;\n                    cVar2 = *pcVar8;\n                  }" ({ "{") (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (} "}"))) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" (identifier "pcVar19") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if (cVar2 == '\0') break;" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" (else "else") (if_statement "if (pcVar15[2] != '\0') {\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" (if "if") (parenthesized_expression "(pcVar15[2] != '\0')" (( "(") (binary_expression "pcVar15[2] != '\0'" (subscript_expression "pcVar15[2]" (identifier "pcVar15") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  cVar2 = *pcVar15;\n                  goto LAB_000dedb8;\n                }" ({ "{") (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" (identifier "cVar2") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (goto_statement "goto LAB_000dedb8;" (goto "goto") (statement_identifier "LAB_000dedb8") (; ";")) (} "}"))))) (expression_statement "pcVar19 = pcVar15;" (assignment_expression "pcVar19 = pcVar15" (identifier "pcVar19") (= "=") (identifier "pcVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar8 == '*')" (( "(") (binary_expression "*pcVar8 == '*'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (labeled_statement "LAB_000dedb8:\n              *(int *)(puVar27 + -0x40) = (int)cVar2;" (statement_identifier "LAB_000dedb8") (: ":") (expression_statement "*(int *)(puVar27 + -0x40) = (int)cVar2;" (assignment_expression "*(int *)(puVar27 + -0x40) = (int)cVar2" (pointer_expression "*(int *)(puVar27 + -0x40)" (* "*") (cast_expression "(int *)(puVar27 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x40)" (( "(") (binary_expression "puVar27 + -0x40" (identifier "puVar27") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2"))) (; ";"))) (expression_statement "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);" (assignment_expression "*(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0)" (pointer_expression "*(uint *)(puVar27 + -0x48)" (* "*") (cast_expression "(uint *)(puVar27 + -0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (call_expression "(uint)(cVar2 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar2 == 0)" (( "(") (binary_expression "cVar2 == 0" (identifier "cVar2") (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x60fc")) () ")"))))) () ")")) (argument_list "(pcVar19)" (( "(") (identifier "pcVar19") () ")")))) (; ";")) (expression_statement "uVar13 = uVar13 | 0x210;" (assignment_expression "uVar13 = uVar13 | 0x210" (identifier "uVar13") (= "=") (binary_expression "uVar13 | 0x210" (identifier "uVar13") (| "|") (number_literal "0x210"))) (; ";")) (if_statement "if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;" (if "if") (parenthesized_expression "(*(int *)(puVar27 + -0x40) == 0)" (( "(") (binary_expression "*(int *)(puVar27 + -0x40) == 0" (pointer_expression "*(int *)(puVar27 + -0x40)" (* "*") (cast_expression "(int *)(puVar27 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x40)" (( "(") (binary_expression "puVar27 + -0x40" (identifier "puVar27") (+ "+") (number_literal "-0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dee6c;" (goto "goto") (statement_identifier "LAB_000dee6c") (; ";"))) (} "}")) (else_clause "else {\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" (else "else") (compound_statement "{\n              *(undefined4 *)(puVar27 + -0x48) = 0;\n            }" ({ "{") (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)(puVar27 + -0x48) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x48) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar27 + -0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x48) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar16 = uVar21;" (assignment_expression "uVar16 = uVar21" (identifier "uVar16") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" (identifier "uVar22") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (3 < (int)uVar21) {\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" (if "if") (parenthesized_expression "(3 < (int)uVar21)" (( "(") (binary_expression "3 < (int)uVar21" (number_literal "3") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;\n          pcVar8 = pcVar19 + (uVar21 - 6);\n          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }\n        }" ({ "{") (if_statement "if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;" (if "if") (parenthesized_expression "(((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*'))" (( "(") (binary_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||\n             (pcVar19[uVar21 - 3] != '*')" (parenthesized_expression "((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*'))" (( "(") (binary_expression "(pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')" (parenthesized_expression "(pcVar19[uVar21 - 1] != '/')" (( "(") (binary_expression "pcVar19[uVar21 - 1] != '/'" (subscript_expression "pcVar19[uVar21 - 1]" (identifier "pcVar19") ([ "[") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar19[uVar21 - 2] != '*')" (( "(") (binary_expression "pcVar19[uVar21 - 2] != '*'" (subscript_expression "pcVar19[uVar21 - 2]" (identifier "pcVar19") ([ "[") (binary_expression "uVar21 - 2" (identifier "uVar21") (- "-") (number_literal "2")) (] "]")) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pcVar19[uVar21 - 3] != '*')" (( "(") (binary_expression "pcVar19[uVar21 - 3] != '*'" (subscript_expression "pcVar19[uVar21 - 3]" (identifier "pcVar19") ([ "[") (binary_expression "uVar21 - 3" (identifier "uVar21") (- "-") (number_literal "3")) (] "]")) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000dee6c;" (goto "goto") (statement_identifier "LAB_000dee6c") (; ";"))) (expression_statement "pcVar8 = pcVar19 + (uVar21 - 6);" (assignment_expression "pcVar8 = pcVar19 + (uVar21 - 6)" (identifier "pcVar8") (= "=") (binary_expression "pcVar19 + (uVar21 - 6)" (identifier "pcVar19") (+ "+") (parenthesized_expression "(uVar21 - 6)" (( "(") (binary_expression "uVar21 - 6" (identifier "uVar21") (- "-") (number_literal "6")) () ")")))) (; ";")) (while_statement "while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" (while "while") (parenthesized_expression "((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)))" (( "(") (parenthesized_expression "(uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))" (( "(") (comma_expression "uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar14 = uVar22" (identifier "uVar14") (= "=") (identifier "uVar22")) (, ",") (comma_expression "uVar22 = uVar14, pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (assignment_expression "uVar22 = uVar14" (identifier "uVar22") (= "=") (identifier "uVar14")) (, ",") (binary_expression "pcVar8[2] == '/' &&\n                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (binary_expression "pcVar8[2] == '/'" (subscript_expression "pcVar8[2]" (identifier "pcVar8") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) (&& "&&") (parenthesized_expression "(uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22)" (( "(") (comma_expression "uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar22 = uVar14 - 3" (identifier "uVar22") (= "=") (binary_expression "uVar14 - 3" (identifier "uVar14") (- "-") (number_literal "3"))) (, ",") (comma_expression "uVar16 = uVar14, 3 < (int)uVar22" (assignment_expression "uVar16 = uVar14" (identifier "uVar16") (= "=") (identifier "uVar14")) (, ",") (binary_expression "3 < (int)uVar22" (number_literal "3") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))))) () ")"))))) () ")")) () ")")) (compound_statement "{\n            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;\n          }" ({ "{") (if_statement "if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;" (if "if") (parenthesized_expression "((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'))" (( "(") (binary_expression "(pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" (parenthesized_expression "(pcVar8[1] != '*')" (( "(") (binary_expression "pcVar8[1] != '*'" (subscript_expression "pcVar8[1]" (identifier "pcVar8") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')" (( "(") (comma_expression "cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (, ",") (comma_expression "pcVar8 = pcVar8 + -3, cVar2 != '*'" (assignment_expression "pcVar8 = pcVar8 + -3" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + -3" (identifier "pcVar8") (+ "+") (number_literal "-3"))) (, ",") (binary_expression "cVar2 != '*'" (identifier "cVar2") (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "bVar1 = uVar22 != uVar21;" (assignment_expression "bVar1 = uVar22 != uVar21" (identifier "bVar1") (= "=") (binary_expression "uVar22 != uVar21" (identifier "uVar22") (!= "!=") (identifier "uVar21"))) (; ";")) (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" (identifier "uVar21") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {\n          uVar21 = uVar16 - 3;\n        }" (if "if") (parenthesized_expression "((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))))" (( "(") (binary_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&\n           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" (parenthesized_expression "(((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*'))" (( "(") (binary_expression "((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')" (parenthesized_expression "((bVar1) && (4 < uVar16))" (( "(") (binary_expression "(bVar1) && (4 < uVar16)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(4 < uVar16)" (( "(") (binary_expression "4 < uVar16" (number_literal "4") (< "<") (identifier "uVar16")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))" (( "(") (parenthesized_expression "(*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0'))" (( "(") (binary_expression "*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')" (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" (* "*") (cast_expression "(char *)(iVar3 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 2)" (( "(") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar21 = uVar16 - 3;\n        }" ({ "{") (expression_statement "uVar21 = uVar16 - 3;" (assignment_expression "uVar21 = uVar16 - 3" (identifier "uVar21") (= "=") (binary_expression "uVar16 - 3" (identifier "uVar16") (- "-") (number_literal "3"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000dee6c:\n      if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" (statement_identifier "LAB_000dee6c") (: ":") (if_statement "if (pcVar19[uVar21 - 1] == '/') {\n        pcVar19[uVar21 - 1] = '\0';\n      }" (if "if") (parenthesized_expression "(pcVar19[uVar21 - 1] == '/')" (( "(") (binary_expression "pcVar19[uVar21 - 1] == '/'" (subscript_expression "pcVar19[uVar21 - 1]" (identifier "pcVar19") ([ "[") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1")) (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n        pcVar19[uVar21 - 1] = '\0';\n      }" ({ "{") (expression_statement "pcVar19[uVar21 - 1] = '\0';" (assignment_expression "pcVar19[uVar21 - 1] = '\0'" (subscript_expression "pcVar19[uVar21 - 1]" (identifier "pcVar19") ([ "[") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "iVar17 = glob_filename(pcVar19,uVar13 | 0x800);" (assignment_expression "iVar17 = glob_filename(pcVar19,uVar13 | 0x800)" (identifier "iVar17") (= "=") (call_expression "glob_filename(pcVar19,uVar13 | 0x800)" (identifier "glob_filename") (argument_list "(pcVar19,uVar13 | 0x800)" (( "(") (identifier "pcVar19") (, ",") (binary_expression "uVar13 | 0x800" (identifier "uVar13") (| "|") (number_literal "0x800")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar27 + -0x30) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x30) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x30)" (* "*") (cast_expression "(int *)(puVar27 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000df274:\n        iVar3 = 1;\n        __pattern = (char *)*piVar7;\n        piVar18 = piVar7;\n        while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }\n        goto LAB_000df2ac;\n      }" ({ "{") (labeled_statement "LAB_000df274:\n        iVar3 = 1;" (statement_identifier "LAB_000df274") (: ":") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";"))) (expression_statement "__pattern = (char *)*piVar7;" (assignment_expression "__pattern = (char *)*piVar7" (identifier "__pattern") (= "=") (cast_expression "(char *)*piVar7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")))) (; ";")) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" (identifier "piVar18") (= "=") (identifier "piVar7")) (; ";")) (while_statement "while (__pattern != (char *)0x0) {\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" (while "while") (parenthesized_expression "(__pattern != (char *)0x0)" (( "(") (binary_expression "__pattern != (char *)0x0" (identifier "__pattern") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar18 = piVar18 + 1;\n          (**(code **)(iVar25 + -0x5f94))(__pattern);\n          iVar25 = *(int *)(puVar27 + -0x50);\n          __pattern = (char *)*piVar18;\n        }" ({ "{") (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" (identifier "piVar18") (= "=") (binary_expression "piVar18 + 1" (identifier "piVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "__pattern = (char *)*piVar18;" (assignment_expression "__pattern = (char *)*piVar18" (identifier "__pattern") (= "=") (cast_expression "(char *)*piVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18")))) (; ";")) (} "}"))) (goto_statement "goto LAB_000df2ac;" (goto "goto") (statement_identifier "LAB_000df2ac") (; ";")) (} "}"))) (if_statement "if (iVar17 == *(int *)(iVar25 + -0x7174)) {\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" (if "if") (parenthesized_expression "(iVar17 == *(int *)(iVar25 + -0x7174))" (( "(") (binary_expression "iVar17 == *(int *)(iVar25 + -0x7174)" (identifier "iVar17") (== "==") (pointer_expression "*(int *)(iVar25 + -0x7174)" (* "*") (cast_expression "(int *)(iVar25 + -0x7174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7174)" (( "(") (binary_expression "iVar25 + -0x7174" (identifier "iVar25") (+ "+") (number_literal "-0x7174")) () ")"))))) () ")")) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar7);\n        return *(int **)(puVar27 + -0x30);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar7);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (return_statement "return *(int **)(puVar27 + -0x30);" (return "return") (pointer_expression "*(int **)(puVar27 + -0x30)" (* "*") (cast_expression "(int **)(puVar27 + -0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);" (assignment_expression "pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30)" (identifier "pcVar19") (= "=") (cast_expression "(char *)**(undefined4 **)(puVar27 + -0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar27 + -0x30)" (* "*") (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 **)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")"))))))) (; ";")) (if_statement "if (pcVar19 == (char *)0x0) {\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" (if "if") (parenthesized_expression "(pcVar19 == (char *)0x0)" (( "(") (binary_expression "pcVar19 == (char *)0x0" (identifier "pcVar19") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));\n        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);\n        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(*(undefined4 **)(puVar27 + -0x30))" (( "(") (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 **)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (return_statement "return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);" (return "return") (pointer_expression "*(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" (* "*") (cast_expression "(int **)(*(int *)(puVar27 + -0x50) + -0x7174)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7174)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x7174" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x7174")) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" (identifier "puVar23") (= "=") (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 **)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar27 + -0x48) != 0) {\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar27 + -0x48) != 0)" (( "(") (binary_expression "*(int *)(puVar27 + -0x48) != 0" (pointer_expression "*(int *)(puVar27 + -0x48)" (* "*") (cast_expression "(int *)(puVar27 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }\n        puVar23 = *(undefined4 **)(puVar27 + -0x30);\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }\n      }" ({ "{") (if_statement "if (*(char *)(iVar3 + 1) != '*') {\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n          iVar17 = *(int *)(iVar25 + -0x7f90);\n          goto LAB_000def94;\n        }" ({ "{") (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")"))))) (; ";")) (goto_statement "goto LAB_000def94;" (goto "goto") (statement_identifier "LAB_000def94") (; ";")) (} "}"))) (expression_statement "puVar23 = *(undefined4 **)(puVar27 + -0x30);" (assignment_expression "puVar23 = *(undefined4 **)(puVar27 + -0x30)" (identifier "puVar23") (= "=") (pointer_expression "*(undefined4 **)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 **)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" (if "if") (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" (( "(") (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" (* "*") (cast_expression "(char *)(iVar3 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 2)" (( "(") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));\n          iVar25 = *(int *)(puVar27 + -0x50);\n          iVar3 = *(int *)(puVar27 + -0x48);\n          __pattern = (char *)0x0;\n          pcVar19 = pcVar20;\n          goto LAB_000deb94;\n        }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));" (call_expression "(**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30))" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar27 + -0x30))" (( "(") (pointer_expression "*(undefined4 *)(puVar27 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar27 + -0x48);" (assignment_expression "iVar3 = *(int *)(puVar27 + -0x48)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar27 + -0x48)" (* "*") (cast_expression "(int *)(puVar27 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "__pattern = (char *)0x0;" (assignment_expression "__pattern = (char *)0x0" (identifier "__pattern") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" (identifier "pcVar19") (= "=") (identifier "pcVar20")) (; ";")) (goto_statement "goto LAB_000deb94;" (goto "goto") (statement_identifier "LAB_000deb94") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar17 = *(int *)(iVar25 + -0x7f90);" (assignment_expression "iVar17 = *(int *)(iVar25 + -0x7f90)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar25 + -0x7f90)" (* "*") (cast_expression "(int *)(iVar25 + -0x7f90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7f90)" (( "(") (binary_expression "iVar25 + -0x7f90" (identifier "iVar25") (+ "+") (number_literal "-0x7f90")) () ")"))))) (; ";")) (labeled_statement "LAB_000def94:\n      iVar26 = 1;" (statement_identifier "LAB_000def94") (: ":") (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" (identifier "iVar26") (= "=") (number_literal "1")) (; ";"))) (expression_statement "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;" (assignment_expression "*(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18" (pointer_expression "*(int *)(puVar27 + -0x2c)" (* "*") (cast_expression "(int *)(puVar27 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x2c)" (( "(") (binary_expression "puVar27 + -0x2c" (identifier "puVar27") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (binary_expression "iVar17 + -0x5e18" (identifier "iVar17") (+ "+") (number_literal "-0x5e18"))) (; ";")) (expression_statement "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);" (assignment_expression "*(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960)" (pointer_expression "*(undefined4 *)(puVar27 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x40)" (( "(") (binary_expression "puVar27 + -0x40" (identifier "puVar27") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar25 + -0x6960)" (* "*") (cast_expression "(undefined4 *)(iVar25 + -0x6960)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x6960)" (( "(") (binary_expression "iVar25 + -0x6960" (identifier "iVar25") (+ "+") (number_literal "-0x6960")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;" (assignment_expression "*(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(puVar27 + -0x34)" (* "*") (cast_expression "(int *)(puVar27 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x34)" (( "(") (binary_expression "puVar27 + -0x34" (identifier "puVar27") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (binary_expression "*(int *)(iVar25 + -0x6990) + -0x2924" (pointer_expression "*(int *)(iVar25 + -0x6990)" (* "*") (cast_expression "(int *)(iVar25 + -0x6990)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x6990)" (( "(") (binary_expression "iVar25 + -0x6990" (identifier "iVar25") (+ "+") (number_literal "-0x6990")) () ")")))) (+ "+") (number_literal "-0x2924"))) (; ";")) (labeled_statement "LAB_000df010:\n      uVar21 = (uint)piVar18 & 0xfffffdee;" (statement_identifier "LAB_000df010") (: ":") (expression_statement "uVar21 = (uint)piVar18 & 0xfffffdee;" (assignment_expression "uVar21 = (uint)piVar18 & 0xfffffdee" (identifier "uVar21") (= "=") (binary_expression "(uint)piVar18 & 0xfffffdee" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0xfffffdee"))) (; ";"))) (if_statement "if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }\n      else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*'))" (( "(") (binary_expression "(*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "(*(int *)(puVar27 + -0x44) == 0)" (( "(") (binary_expression "*(int *)(puVar27 + -0x44) == 0" (pointer_expression "*(int *)(puVar27 + -0x44)" (* "*") (cast_expression "(int *)(puVar27 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x44)" (( "(") (binary_expression "puVar27 + -0x44" (identifier "puVar27") (+ "+") (number_literal "-0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;\n      }" ({ "{") (if_statement "if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;" (if "if") (parenthesized_expression "((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0'))" (( "(") (binary_expression "(*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')" (parenthesized_expression "(*pcVar19 == '\0')" (( "(") (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 1) != '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 1) != '\0'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000defd0;" (goto "goto") (statement_identifier "LAB_000defd0") (; ";"))) (} "}")) (else_clause "else {\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" (else "else") (compound_statement "{\n        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }\n        if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }\n      }" ({ "{") (if_statement "if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {\n          uVar21 = uVar21 | 0x210;\n        }" (if "if") (parenthesized_expression "((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')" (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" (( "(") (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" (* "*") (cast_expression "(char *)(iVar3 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 2)" (( "(") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 3) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 3) == '\0'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar21 = uVar21 | 0x210;\n        }" ({ "{") (expression_statement "uVar21 = uVar21 | 0x210;" (assignment_expression "uVar21 = uVar21 | 0x210" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 0x210" (identifier "uVar21") (| "|") (number_literal "0x210"))) (; ";")) (} "}"))) (if_statement "if (*pcVar19 == '\0') {\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" (if "if") (parenthesized_expression "(*pcVar19 == '\0')" (( "(") (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000defd0:\n          uVar21 = uVar21 | 0x100;\n          pcVar19 = *(char **)(puVar27 + -0x2c);\n        }" ({ "{") (labeled_statement "LAB_000defd0:\n          uVar21 = uVar21 | 0x100;" (statement_identifier "LAB_000defd0") (: ":") (expression_statement "uVar21 = uVar21 | 0x100;" (assignment_expression "uVar21 = uVar21 | 0x100" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 0x100" (identifier "uVar21") (| "|") (number_literal "0x100"))) (; ";"))) (expression_statement "pcVar19 = *(char **)(puVar27 + -0x2c);" (assignment_expression "pcVar19 = *(char **)(puVar27 + -0x2c)" (identifier "pcVar19") (= "=") (pointer_expression "*(char **)(puVar27 + -0x2c)" (* "*") (cast_expression "(char **)(puVar27 + -0x2c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x2c)" (( "(") (binary_expression "puVar27 + -0x2c" (identifier "puVar27") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" (identifier "piVar9") (= "=") (cast_expression "(int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21)" (parenthesized_expression "(**(code **)(puVar27 + -0x40))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x40)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x40)" (* "*") (cast_expression "(code **)(puVar27 + -0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x40)" (( "(") (binary_expression "puVar27 + -0x40" (identifier "puVar27") (+ "+") (number_literal "-0x40")) () ")"))))) () ")")) (argument_list "(pcVar20,pcVar19,uVar21)" (( "(") (identifier "pcVar20") (, ",") (identifier "pcVar19") (, ",") (identifier "uVar21") () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) goto LAB_000df26c;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000df26c;" (goto "goto") (statement_identifier "LAB_000df26c") (; ";"))) (if_statement "if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;" (if "if") (parenthesized_expression "(piVar9 == *(int **)(iVar25 + -0x7174))" (( "(") (binary_expression "piVar9 == *(int **)(iVar25 + -0x7174)" (identifier "piVar9") (== "==") (pointer_expression "*(int **)(iVar25 + -0x7174)" (* "*") (cast_expression "(int **)(iVar25 + -0x7174)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7174)" (( "(") (binary_expression "iVar25 + -0x7174" (identifier "iVar25") (+ "+") (number_literal "-0x7174")) () ")"))))) () ")")) (goto_statement "goto LAB_000df004;" (goto "goto") (statement_identifier "LAB_000df004") (; ";"))) (expression_statement "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10;" (assignment_expression "*(uint *)(puVar27 + -0x38) = uVar21 & 0x10" (pointer_expression "*(uint *)(puVar27 + -0x38)" (* "*") (cast_expression "(uint *)(puVar27 + -0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x38)" (( "(") (binary_expression "puVar27 + -0x38" (identifier "puVar27") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (binary_expression "uVar21 & 0x10" (identifier "uVar21") (& "&") (number_literal "0x10"))) (; ";")) (if_statement "if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }\n      else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" (if "if") (parenthesized_expression "(((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))))" (( "(") (binary_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')) ||\n         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" (parenthesized_expression "((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*'))" (( "(") (binary_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||\n          (*(char *)(iVar3 + 2) != '*')" (parenthesized_expression "(((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*'))" (( "(") (binary_expression "((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')" (parenthesized_expression "((uVar21 & 0x10) == 0)" (( "(") (binary_expression "(uVar21 & 0x10) == 0" (parenthesized_expression "(uVar21 & 0x10)" (( "(") (binary_expression "uVar21 & 0x10" (identifier "uVar21") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar3 + 2) != '*')" (( "(") (binary_expression "*(char *)(iVar3 + 2) != '*'" (pointer_expression "*(char *)(iVar3 + 2)" (* "*") (cast_expression "(char *)(iVar3 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 2)" (( "(") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) () ")")))) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))" (( "(") (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/'))" (( "(") (binary_expression "*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')" (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)(iVar3 + 3) != '/')" (( "(") (binary_expression "*(char *)(iVar3 + 3) != '/'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);\n        iVar25 = *(int *)(puVar27 + -0x50);\n        *(undefined4 *)(puVar27 + -0x3c) = 0;\nLAB_000df0a0:\n        iVar17 = 0;\n        if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }\n      }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);" (assignment_expression "piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18)" (parenthesized_expression "(**(code **)(puVar27 + -0x34))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x34)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x34)" (* "*") (cast_expression "(code **)(puVar27 + -0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x34)" (( "(") (binary_expression "puVar27 + -0x34" (identifier "puVar27") (+ "+") (number_literal "-0x34")) () ")"))))) () ")")) (argument_list "(*puVar23,piVar9,piVar18)" (( "(") (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (, ",") (identifier "piVar9") (, ",") (identifier "piVar18") () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000df0a0:\n        iVar17 = 0;" (statement_identifier "LAB_000df0a0") (: ":") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (*piVar10 != 0) {\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" (if "if") (parenthesized_expression "(*piVar10 != 0)" (( "(") (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000df0ac:\n          iVar17 = 0;\n          piVar12 = piVar10;\n          do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);\n        }" ({ "{") (labeled_statement "LAB_000df0ac:\n          iVar17 = 0;" (statement_identifier "LAB_000df0ac") (: ":") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar12 = piVar10;" (assignment_expression "piVar12 = piVar10" (identifier "piVar12") (= "=") (identifier "piVar10")) (; ";")) (do_statement "do {\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          } while (*piVar12 != 0);" (do "do") (compound_statement "{\n            piVar12 = piVar12 + 1;\n            iVar17 = iVar17 + 1;\n          }" ({ "{") (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar12 != 0)" (( "(") (binary_expression "*piVar12 != 0" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" (else "else") (compound_statement "{\n        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;\n        piVar10 = piVar9;\n        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;\n        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;\n        if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }\n        if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }\n        iVar17 = 0;\n      }" ({ "{") (expression_statement "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = uVar21 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" (* "*") (cast_expression "(uint *)(puVar27 + -0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "uVar21 & 0x100" (identifier "uVar21") (& "&") (number_literal "0x100"))) (; ";")) (expression_statement "piVar10 = piVar9;" (assignment_expression "piVar10 = piVar9" (identifier "piVar10") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;" (if "if") (parenthesized_expression "((uVar21 & 0x100) == 0)" (( "(") (binary_expression "(uVar21 & 0x100) == 0" (parenthesized_expression "(uVar21 & 0x100)" (( "(") (binary_expression "uVar21 & 0x100" (identifier "uVar21") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000df0a0;" (goto "goto") (statement_identifier "LAB_000df0a0") (; ";"))) (expression_statement "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;" (assignment_expression "*(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100" (pointer_expression "*(uint *)(puVar27 + -0x3c)" (* "*") (cast_expression "(uint *)(puVar27 + -0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x100"))) (; ";")) (if_statement "if (((uint)piVar18 & 0x100) != 0) {\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x100) != 0)" (( "(") (binary_expression "((uint)piVar18 & 0x100) != 0" (parenthesized_expression "((uint)piVar18 & 0x100)" (( "(") (binary_expression "(uint)piVar18 & 0x100" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar27 + -0x3c) = 0;\n          goto LAB_000df0a0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000df0a0;" (goto "goto") (statement_identifier "LAB_000df0a0") (; ";")) (} "}"))) (if_statement "if ((char *)*piVar9 != (char *)0x0) {\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" (if "if") (parenthesized_expression "((char *)*piVar9 != (char *)0x0)" (( "(") (binary_expression "(char *)*piVar9 != (char *)0x0" (cast_expression "(char *)*piVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar12 = piVar9;\n          if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }\n          goto LAB_000df0ac;\n        }" ({ "{") (expression_statement "piVar12 = piVar9;" (assignment_expression "piVar12 = piVar9" (identifier "piVar12") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (*(char *)*piVar9 == '\0') {\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" (if "if") (parenthesized_expression "(*(char *)*piVar9 == '\0')" (( "(") (binary_expression "*(char *)*piVar9 == '\0'" (pointer_expression "*(char *)*piVar9" (* "*") (cast_expression "(char *)*piVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');\n            iVar17 = *(int *)(puVar27 + -0x3c);\n            piVar12 = piVar9 + iVar17;\n            do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);\n            *(undefined4 *)(puVar27 + -0x3c) = 1;\n            goto LAB_000df0a0;\n          }" ({ "{") (do_statement "do {\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            } while (*pcVar19 == '\0');" (do "do") (compound_statement "{\n              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;\n              pcVar19 = (char *)piVar12[1];\n              if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }\n              piVar12 = piVar12 + 1;\n            }" ({ "{") (expression_statement "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;" (assignment_expression "*(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar27 + -0x3c) + 1" (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar19 = (char *)piVar12[1];" (assignment_expression "pcVar19 = (char *)piVar12[1]" (identifier "pcVar19") (= "=") (cast_expression "(char *)piVar12[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (pcVar19 == (char *)0x0) {\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" (if "if") (parenthesized_expression "(pcVar19 == (char *)0x0)" (( "(") (binary_expression "pcVar19 == (char *)0x0" (identifier "pcVar19") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];\n                *(undefined4 *)(puVar27 + -0x3c) = 1;\n                goto LAB_000df0a0;\n              }" ({ "{") (expression_statement "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];" (assignment_expression "*piVar9 = piVar9[*(int *)(puVar27 + -0x3c)]" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (subscript_expression "piVar9[*(int *)(puVar27 + -0x3c)]" (identifier "piVar9") ([ "[") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000df0a0;" (goto "goto") (statement_identifier "LAB_000df0a0") (; ";")) (} "}"))) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar19 == '\0')" (( "(") (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (expression_statement "piVar12 = piVar9 + iVar17;" (assignment_expression "piVar12 = piVar9 + iVar17" (identifier "piVar12") (= "=") (binary_expression "piVar9 + iVar17" (identifier "piVar9") (+ "+") (identifier "iVar17"))) (; ";")) (do_statement "do {\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            } while (iVar11 != 0);" (do "do") (compound_statement "{\n              iVar11 = *piVar12;\n              piVar12[-iVar17] = iVar11;\n              piVar12 = piVar12 + 1;\n            }" ({ "{") (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "piVar12[-iVar17] = iVar11;" (assignment_expression "piVar12[-iVar17] = iVar11" (subscript_expression "piVar12[-iVar17]" (identifier "piVar12") ([ "[") (unary_expression "-iVar17" (- "-") (identifier "iVar17")) (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(undefined4 *)(puVar27 + -0x3c) = 1;" (assignment_expression "*(undefined4 *)(puVar27 + -0x3c) = 1" (pointer_expression "*(undefined4 *)(puVar27 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar27 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000df0a0;" (goto "goto") (statement_identifier "LAB_000df0a0") (; ";")) (} "}"))) (goto_statement "goto LAB_000df0ac;" (goto "goto") (statement_identifier "LAB_000df0ac") (; ";")) (} "}"))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);" (assignment_expression "iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4)" (parenthesized_expression "(**(code **)(iVar25 + -0x6098))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x6098)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x6098)" (* "*") (cast_expression "(code **)(iVar25 + -0x6098)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x6098)" (( "(") (binary_expression "iVar25 + -0x6098" (identifier "iVar25") (+ "+") (number_literal "-0x6098")) () ")"))))) () ")")) (argument_list "(piVar7,(iVar26 + iVar17) * 4)" (( "(") (identifier "piVar7") (, ",") (binary_expression "(iVar26 + iVar17) * 4" (parenthesized_expression "(iVar26 + iVar17)" (( "(") (binary_expression "iVar26 + iVar17" (identifier "iVar26") (+ "+") (identifier "iVar17")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar27 + -0x48) = iVar17;" (assignment_expression "*(int *)(puVar27 + -0x48) = iVar17" (pointer_expression "*(int *)(puVar27 + -0x48)" (* "*") (cast_expression "(int *)(puVar27 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (if_statement "if (iVar17 == 0) {\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar28 = *(code **)(iVar25 + -0x5f94);\n        iVar3 = *piVar10;\n        piVar18 = piVar10;\n        while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);\n        if (piVar7 == (int *)0x0) goto LAB_000df2c8;\n        goto LAB_000df274;\n      }" ({ "{") (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar10;" (assignment_expression "iVar3 = *piVar10" (identifier "iVar3") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "piVar18 = piVar10;" (assignment_expression "piVar18 = piVar10" (identifier "piVar18") (= "=") (identifier "piVar10")) (; ";")) (while_statement "while (iVar3 != 0) {\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar18 = piVar18 + 1;\n          (*pcVar28)();\n          iVar25 = *(int *)(puVar27 + -0x50);\n          pcVar28 = *(code **)(iVar25 + -0x5f94);\n          iVar3 = *piVar18;\n        }" ({ "{") (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" (identifier "piVar18") (= "=") (binary_expression "piVar18 + 1" (identifier "piVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "pcVar28 = *(code **)(iVar25 + -0x5f94);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x5f94)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar18;" (assignment_expression "iVar3 = *piVar18" (identifier "iVar3") (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (labeled_statement "LAB_000df26c:\n        piVar18 = *(int **)(iVar25 + -0x7cfc);" (statement_identifier "LAB_000df26c") (: ":") (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) (; ";"))) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df2c8;" (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"))) () ")")) (goto_statement "goto LAB_000df2c8;" (goto "goto") (statement_identifier "LAB_000df2c8") (; ";"))) (goto_statement "goto LAB_000df274;" (goto "goto") (statement_identifier "LAB_000df274") (; ";")) (} "}"))) (expression_statement "iVar17 = *piVar10;" (assignment_expression "iVar17 = *piVar10" (identifier "iVar17") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (if_statement "if (iVar17 != 0) {\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;\n        piVar7 = piVar10;\n        do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);\n      }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;" (assignment_expression "iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar27 + -0x48) + iVar26 * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" (* "*") (cast_expression "(int *)(puVar27 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4")))) (; ";")) (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" (identifier "piVar7") (= "=") (identifier "piVar10")) (; ";")) (do_statement "do {\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        } while (iVar17 != 0);" (do "do") (compound_statement "{\n          piVar7 = piVar7 + 1;\n          iVar26 = iVar26 + 1;\n          *(int *)(iVar11 + -4) = iVar17;\n          iVar17 = *piVar7;\n          iVar11 = iVar11 + 4;\n        }" ({ "{") (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar11 + -4) = iVar17;" (assignment_expression "*(int *)(iVar11 + -4) = iVar17" (pointer_expression "*(int *)(iVar11 + -4)" (* "*") (cast_expression "(int *)(iVar11 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "iVar17 = *piVar7;" (assignment_expression "iVar17 = *piVar7" (identifier "iVar17") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4)" (( "(") (binary_expression "*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4" (pointer_expression "*(int *)(puVar27 + -0x48)" (* "*") (cast_expression "(int *)(puVar27 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")")))) (+ "+") (binary_expression "(iVar26 + 0x3fffffff) * 4" (parenthesized_expression "(iVar26 + 0x3fffffff)" (( "(") (binary_expression "iVar26 + 0x3fffffff" (identifier "iVar26") (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar9 == piVar10) {\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }\n      else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" (if "if") (parenthesized_expression "(piVar9 == piVar10)" (( "(") (binary_expression "piVar9 == piVar10" (identifier "piVar9") (== "==") (identifier "piVar10")) () ")")) (compound_statement "{\n        iVar17 = *(int *)(puVar27 + -0x3c);\n        if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }\n      }" ({ "{") (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar27 + -0x38) != 0) {\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar27 + -0x38) != 0)" (( "(") (binary_expression "*(int *)(puVar27 + -0x38) != 0" (pointer_expression "*(int *)(puVar27 + -0x38)" (* "*") (cast_expression "(int *)(puVar27 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x38)" (( "(") (binary_expression "puVar27 + -0x38" (identifier "puVar27") (+ "+") (number_literal "-0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;\n          iVar17 = *(int *)(puVar27 + -0x3c);\n          if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }\n        }" ({ "{") (if_statement "if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 1) != '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) != '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (goto_statement "goto LAB_000df14c;" (goto "goto") (statement_identifier "LAB_000df14c") (; ";"))) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar3 + 2) == '*') {\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 2) == '*')" (( "(") (binary_expression "*(char *)(iVar3 + 2) == '*'" (pointer_expression "*(char *)(iVar3 + 2)" (* "*") (cast_expression "(char *)(iVar3 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 2)" (( "(") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;\n            (**(code **)(iVar25 + -0x5f94))(piVar10);\n            iVar25 = *(int *)(puVar27 + -0x50);\n            iVar17 = *(int *)(puVar27 + -0x3c);\n          }" ({ "{") (if_statement "if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 3) != '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 3) != '\0'" (pointer_expression "*(char *)(iVar3 + 3)" (* "*") (cast_expression "(char *)(iVar3 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 3)" (( "(") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000df14c;" (goto "goto") (statement_identifier "LAB_000df14c") (; ";"))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" (else "else") (compound_statement "{\n        (**(code **)(iVar25 + -0x5f94))(piVar10);\n        iVar25 = *(int *)(puVar27 + -0x50);\nLAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);\n      }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x5f94))(piVar10);" (call_expression "(**(code **)(iVar25 + -0x5f94))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (labeled_statement "LAB_000df14c:\n        iVar17 = *(int *)(puVar27 + -0x3c);" (statement_identifier "LAB_000df14c") (: ":") (expression_statement "iVar17 = *(int *)(puVar27 + -0x3c);" (assignment_expression "iVar17 = *(int *)(puVar27 + -0x3c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar27 + -0x3c)" (* "*") (cast_expression "(int *)(puVar27 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x3c)" (( "(") (binary_expression "puVar27 + -0x3c" (identifier "puVar27") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "piVar7 = *(int **)(puVar27 + -0x48);" (assignment_expression "piVar7 = *(int **)(puVar27 + -0x48)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar27 + -0x48)" (* "*") (cast_expression "(int **)(puVar27 + -0x48)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x48)" (( "(") (binary_expression "puVar27 + -0x48" (identifier "puVar27") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) goto LAB_000df004;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000df004;" (goto "goto") (statement_identifier "LAB_000df004") (; ";"))) (expression_statement "piVar9 = *(int **)(puVar27 + -0x30);" (assignment_expression "piVar9 = *(int **)(puVar27 + -0x30)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar27 + -0x30)" (* "*") (cast_expression "(int **)(puVar27 + -0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x30)" (( "(") (binary_expression "puVar27 + -0x30" (identifier "puVar27") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (goto_statement "goto LAB_000df34c;" (goto "goto") (statement_identifier "LAB_000df34c") (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar3 + 1) == '\0') {\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 1) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 1) == '\0'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);\n      iVar26 = *(int *)(puVar27 + -0x50);\n      if (piVar7 == (int *)0x0) goto LAB_000df3a4;\n      if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }\n      iVar3 = 1;\n      if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }\n      iVar17 = iVar17 + 2;\n      goto LAB_000df638;\n    }" ({ "{") (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x6098)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x6098)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x6098" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x6098")) () ")"))))) () ")")) (argument_list "(piVar7,8)" (( "(") (identifier "piVar7") (, ",") (number_literal "8") () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) goto LAB_000df3a4;" (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"))) () ")")) (goto_statement "goto LAB_000df3a4;" (goto "goto") (statement_identifier "LAB_000df3a4") (; ";"))) (if_statement "if (uVar21 == 0) {\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_000df634;\n      }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000df634;" (goto "goto") (statement_identifier "LAB_000df634") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar25 == 2) {\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" (if "if") (parenthesized_expression "(iVar25 == 2)" (( "(") (binary_expression "iVar25 == 2" (identifier "iVar25") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }\n        goto LAB_000df634;\n      }" ({ "{") (if_statement "if (((uint)piVar18 & 0x800) == 0) {\n          iVar3 = 1;\n        }\n        else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x800) == 0)" (( "(") (binary_expression "((uint)piVar18 & 0x800) == 0" (parenthesized_expression "((uint)piVar18 & 0x800)" (( "(") (binary_expression "(uint)piVar18 & 0x800" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = 1;\n        }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" (else "else") (compound_statement "{\n          FUN_000ddacc(__pattern);\n          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);\n          iVar26 = *(int *)(puVar27 + -0x50);\n          iVar3 = 1;\n        }" ({ "{") (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" (identifier "FUN_000ddacc") (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);" (assignment_expression "uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x60fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x60fc)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x60fc" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x60fc")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")")))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar26 = *(int *)(puVar27 + -0x50)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_000df634;" (goto "goto") (statement_identifier "LAB_000df634") (; ";")) (} "}"))) (expression_statement "iVar17 = iVar17 + 2;" (assignment_expression "iVar17 = iVar17 + 2" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 2" (identifier "iVar17") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_000df638;" (goto "goto") (statement_identifier "LAB_000df638") (; ";")) (} "}"))) (expression_statement "FUN_000ddacc(__pattern);" (call_expression "FUN_000ddacc(__pattern)" (identifier "FUN_000ddacc") (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);" (call_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x5f94)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x5f94" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "uVar22 = (uint)piVar18 & 0xfffffffe;" (assignment_expression "uVar22 = (uint)piVar18 & 0xfffffffe" (identifier "uVar22") (= "=") (binary_expression "(uint)piVar18 & 0xfffffffe" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "uVar13 = uVar22;" (assignment_expression "uVar13 = uVar22" (identifier "uVar13") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (((uint)piVar18 & 0x400) != 0) {\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" (if "if") (parenthesized_expression "(((uint)piVar18 & 0x400) != 0)" (( "(") (binary_expression "((uint)piVar18 & 0x400) != 0" (parenthesized_expression "((uint)piVar18 & 0x400)" (( "(") (binary_expression "(uint)piVar18 & 0x400" (cast_expression "(uint)piVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar18")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }\n      iVar3 = 1;\n      pcVar8 = __pattern;\n      pcVar19 = pcVar20;\n      goto LAB_000debcc;\n    }" ({ "{") (if_statement "if (*(char *)(iVar3 + 1) == '*') {\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 1) == '*')" (( "(") (binary_expression "*(char *)(iVar3 + 1) == '*'" (pointer_expression "*(char *)(iVar3 + 1)" (* "*") (cast_expression "(char *)(iVar3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n        iVar3 = 1;\n        pcVar19 = pcVar20;\n        goto LAB_000df42c;\n      }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" (identifier "pcVar19") (= "=") (identifier "pcVar20")) (; ";")) (goto_statement "goto LAB_000df42c;" (goto "goto") (statement_identifier "LAB_000df42c") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar8 = __pattern;" (assignment_expression "pcVar8 = __pattern" (identifier "pcVar8") (= "=") (identifier "__pattern")) (; ";")) (expression_statement "pcVar19 = pcVar20;" (assignment_expression "pcVar19 = pcVar20" (identifier "pcVar19") (= "=") (identifier "pcVar20")) (; ";")) (goto_statement "goto LAB_000debcc;" (goto "goto") (statement_identifier "LAB_000debcc") (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22);" (assignment_expression "piVar7 = (int *)glob_vector(pcVar20,__pattern,uVar22)" (identifier "piVar7") (= "=") (cast_expression "(int *)glob_vector(pcVar20,__pattern,uVar22)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "glob_vector(pcVar20,__pattern,uVar22)" (identifier "glob_vector") (argument_list "(pcVar20,__pattern,uVar22)" (( "(") (identifier "pcVar20") (, ",") (identifier "__pattern") (, ",") (identifier "uVar22") () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n      iVar3 = 1;\n      goto LAB_000debec;\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      iVar3 = 1;\n      goto LAB_000debec;\n    }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000debec;" (goto "goto") (statement_identifier "LAB_000debec") (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(iVar25 + -0x5f94))(__pattern);" (call_expression "(**(code **)(iVar25 + -0x5f94))(__pattern)" (parenthesized_expression "(**(code **)(iVar25 + -0x5f94))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x5f94)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x5f94)" (* "*") (cast_expression "(code **)(iVar25 + -0x5f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x5f94)" (( "(") (binary_expression "iVar25 + -0x5f94" (identifier "iVar25") (+ "+") (number_literal "-0x5f94")) () ")"))))) () ")")) (argument_list "(__pattern)" (( "(") (identifier "__pattern") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cfc);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cfc)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) (; ";")) (labeled_statement "LAB_000df4b0:\n  if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" (statement_identifier "LAB_000df4b0") (: ":") (if_statement "if (*piVar18 == 0) {\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" (if "if") (parenthesized_expression "(*piVar18 == 0)" (( "(") (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" ({ "{") (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cf8)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cf8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf8)" (( "(") (binary_expression "iVar25 + -0x7cf8" (identifier "iVar25") (+ "+") (number_literal "-0x7cf8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" (else "else") (compound_statement "{\n    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));\n    iVar25 = *(int *)(puVar27 + -0x50);\n    piVar18 = *(int **)(iVar25 + -0x7cf8);\n  }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));" (call_expression "(**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc))" (parenthesized_expression "(**(code **)(iVar25 + -0x7ce8))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7ce8)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7ce8)" (* "*") (cast_expression "(code **)(iVar25 + -0x7ce8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7ce8)" (( "(") (binary_expression "iVar25 + -0x7ce8" (identifier "iVar25") (+ "+") (number_literal "-0x7ce8")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(iVar25 + -0x7cfc))" (( "(") (pointer_expression "**(undefined4 **)(iVar25 + -0x7cfc)" (* "*") (pointer_expression "*(undefined4 **)(iVar25 + -0x7cfc)" (* "*") (cast_expression "(undefined4 **)(iVar25 + -0x7cfc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cfc)" (( "(") (binary_expression "iVar25 + -0x7cfc" (identifier "iVar25") (+ "+") (number_literal "-0x7cfc")) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar27 + -0x50);" (assignment_expression "iVar25 = *(int *)(puVar27 + -0x50)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "piVar18 = *(int **)(iVar25 + -0x7cf8);" (assignment_expression "piVar18 = *(int **)(iVar25 + -0x7cf8)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar25 + -0x7cf8)" (* "*") (cast_expression "(int **)(iVar25 + -0x7cf8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf8)" (( "(") (binary_expression "iVar25 + -0x7cf8" (identifier "iVar25") (+ "+") (number_literal "-0x7cf8")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (*piVar18 == 0) {\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }\n  else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" (if "if") (parenthesized_expression "(*piVar18 == 0)" (( "(") (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar28 = *(code **)(iVar25 + -0x7d20);\n  }" ({ "{") (expression_statement "pcVar28 = *(code **)(iVar25 + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(iVar25 + -0x7d20)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7d20)" (* "*") (cast_expression "(code **)(iVar25 + -0x7d20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7d20)" (( "(") (binary_expression "iVar25 + -0x7d20" (identifier "iVar25") (+ "+") (number_literal "-0x7d20")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" (else "else") (compound_statement "{\n    (**(code **)(iVar25 + -0x7cf4))();\n    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);\n  }" ({ "{") (expression_statement "(**(code **)(iVar25 + -0x7cf4))();" (call_expression "(**(code **)(iVar25 + -0x7cf4))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cf4))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7cf4)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7cf4)" (* "*") (cast_expression "(code **)(iVar25 + -0x7cf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cf4)" (( "(") (binary_expression "iVar25 + -0x7cf4" (identifier "iVar25") (+ "+") (number_literal "-0x7cf4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);" (assignment_expression "pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (* "*") (cast_expression "(code **)(*(int *)(puVar27 + -0x50) + -0x7d20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x50) + -0x7d20)" (( "(") (binary_expression "*(int *)(puVar27 + -0x50) + -0x7d20" (pointer_expression "*(int *)(puVar27 + -0x50)" (* "*") (cast_expression "(int *)(puVar27 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x50)" (( "(") (binary_expression "puVar27 + -0x50" (identifier "puVar27") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "-0x7d20")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return piVar7;" (return "return") (identifier "piVar7") (; ";")) (} "}")))

char ** function_1(char *var_1,char *dir,int var_10)

{
  bool bVar1;
  char var_38;
  char *var_33;
  int var_3;
  type_1 *var_5;
  type_2 var_11;
  type_3 *pcVar7;
  int *var_15;
  size_t len;
  int var_22;
  char **var_32;
  type_4 *var_28;
  char *var_29;
  char *var_36;
  int var_8;
  char *var_41;
  char **var_26;
  type_2 flags_00;
  int *var_31;
  char *var_40;
  char *var_42;
  type_2 var_12;
  char *var_39;
  char **var_24;
  int *var_21;
  type_2 var_16;
  char *var_37;
  int *unaff_s6;
  int *unaff_s7;
  type_5 *var_34;
  type_1 *puVar26;
  type_1 *var_20;
  type_3 *pcVar28;
  type_1 auStack_130 [8];
  type_1 auStack_128 [8];
  int local_120;
  type_1 *local_11c;
  int var_23;
  char *pcStack_f4;
  type_2 var_9;
  int var_6;
  int *var_25;
  type_6 finfo;
  
  puVar26 = auStack_128;
  var_33 = *(char **)PTR___stack_chk_guard_0015858c;
  var_24 = (char **)0x0;
  if ((var_1 == (char *)0x0) || (var_16 = 0, *var_1 == '\0')) {
    var_24 = (char **)0x0;
    var_3 = var_2(dir,0);
    if (var_3 < 0) {
      var_24 = (char **)var_4(1);
      return var_24;
    }
    var_20 = auStack_130;
    puVar26 = auStack_130;
    var_15 = &local_120;
    local_120 = 0;
    var_5 = (type_1 *)(*(type_3 *)PTR_malloc_0015849c)();
    bVar1 = var_5 == (type_1 *)0x0;
    if (bVar1) {
      var_15 = (int *)0x0;
    }
    else {
      local_11c = var_5;
      *var_5 = 0;
    }
    var_16 = (type_2)!bVar1;
    var_5 = auStack_130;
    if (var_1 == (char *)0x0) goto LAB_000ddefc;
    var_21 = (int *)0x0;
    if (*var_1 != '\0') {
      var_6 = 1;
      goto LAB_000ddf3c;
    }
  }
  else {
    var_6 = 0;
    bVar1 = false;
    var_15 = (int *)0x0;
LAB_000ddf3c:
    var_3 = (*(type_3 *)PTR_strlen_00158444)(var_1);
    var_5 = puVar26;
    if (var_6 == 0) {
      var_8 = var_7(var_1,(int)var_24);
      if (var_8 != 0) {
        var_3 = (*(type_3 *)PTR_opendir_001582b8)();
        if (var_3 == 0) {
          var_24 = (char **)var_4();
          return var_24;
        }
        var_9 = 1;
        if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {
          var_9 = 5;
        }
        if (*(int *)PTR_glob_ignore_case_0015745c != 0) {
          var_9 = var_9 | 0x10;
        }
        if (*(int *)PTR_extended_glob_00156948 != 0) {
          var_9 = var_9 | 0x20;
        }
        var_11 = var_10 >> 2 & 4;
        var_12 = var_10 & 0x100;
        flags_00 = var_11 | 8;
        if (var_12 == 0) {
          flags_00 = var_11;
        }
        var_21 = (int *)0x0;
        pcVar28 = (type_3 *)(var_13 + -0x3104);
        pcVar7 = (type_3 *)(var_13 + -0x29e8);
        unaff_s6 = (int *)PTR_interrupt_state_00156848;
        unaff_s7 = (int *)PTR_terminating_signal_00156844;
        var_20 = puVar26;
        var_31 = var_15;
LAB_000de030:
        do {
          if (*unaff_s6 != 0) {
            var_24 = (char **)var_14();
            return var_24;
          }
          if (*unaff_s7 != 0) {
            var_24 = (char **)var_14(2);
            return var_24;
          }
          var_8 = (*(type_3 *)PTR_signal_is_pending_00157bdc)();
          if (var_8 != 0) {
            var_24 = (char **)var_14(var_3);
            return var_24;
          }
          var_15 = (int *)(*(type_3 *)PTR_readdir64_0015832c)();
          if (var_15 == (int *)0x0) {
            (*(type_3 *)PTR_closedir_001582bc)(var_3);
            var_15 = var_31;
            if ((var_10 & 0x210U) != 0x210) goto LAB_000ddf00;
            var_3 = (*(type_3 *)PTR_strlen_00158444)(dir);
            var_10 = var_3 + 1;
            var_1 = (char *)(*(type_3 *)PTR_malloc_0015849c)(var_10);
            var_15 = (int *)(*(type_3 *)PTR_malloc_0015849c)(8);
            if (var_15 == (int *)0x0) {
              if ((char **)var_1 != (char **)0x0) {
                var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_1);
                return var_24;
              }
              goto LAB_000ddf10;
            }
            if ((char **)var_1 == (char **)0x0) {
              var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_15);
              return var_24;
            }
            var_15[1] = (int)var_1;
            *var_15 = (int)var_31;
            if (var_12 == 0) {
              (*(type_3 *)PTR_memcpy_00158594)(var_1,dir,var_10);
            }
            else {
              *var_1 = '\0';
              dir = (char *)var_24;
            }
            var_16 = var_16 + 1;
            var_24 = (char **)dir;
            goto LAB_000ddf00;
          }
        } while (*var_15 == 0 && var_15[1] == 0);
        var_11 = (*(type_3 *)PTR___ctype_get_mb_cur_max_001584e0)();
        if (1 < var_11) {
          var_24 = (char **)((int)var_15 + 0x13);
          var_8 = var_17(var_1,(char *)var_24,var_10);
          unaff_s6 = (int *)PTR_interrupt_state_00156848;
          unaff_s7 = (int *)PTR_terminating_signal_00156844;
          if (var_8 != 0) goto LAB_000de030;
        }
        var_26 = (char **)((int)var_15 + 0x13);
        var_24 = var_26;
        var_8 = (*pcVar28)(var_1,var_26,var_10);
        unaff_s6 = (int *)PTR_interrupt_state_00156848;
        unaff_s7 = (int *)PTR_terminating_signal_00156844;
        if (var_8 == 0) {
          if ((var_10 & 0x18U) == 0) {
LAB_000de13c:
            if ((var_10 & 0x10U) == 0) {
              if ((var_10 & 8U) != 0) {
                var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(pcStack_f4);
                return var_24;
              }
LAB_000de658:
              len = (*(type_3 *)PTR_strlen_00158444)(var_26);
              var_24 = (char **)var_18((char *)var_26,len);
              var_8 = var_19(var_1,(char *)var_24,var_9);
              unaff_s6 = (int *)PTR_interrupt_state_00156848;
              unaff_s7 = (int *)PTR_terminating_signal_00156844;
              if (var_8 != 1) {
                if (var_6 < 100000) {
                  var_15 = (int *)(var_20 + 8);
                  var_8 = (*(type_3 *)PTR_strlen_00158444)(var_26);
                  var_8 = (*(type_3 *)PTR_malloc_0015849c)(var_8 + 1);
                  var_20 = var_20 + -8;
                  var_6 = var_6 + 8;
                }
                else {
                  var_15 = (int *)(*(type_3 *)PTR_malloc_0015849c)(8);
                  if (var_21 == (int *)0x0) {
                    var_21 = var_15;
                  }
                  var_8 = (*(type_3 *)PTR_strlen_00158444)(var_26);
                  var_8 = (*(type_3 *)PTR_malloc_0015849c)(var_8 + 1);
                  if (var_15 == (int *)0x0) {
                    if (var_8 != 0) {
                      var_24 = (char **)(*(type_3 *)PTR_free_001585ac)();
                      return var_24;
                    }
                    var_24 = (char **)var_14(0);
                    return var_24;
                  }
                }
                if (var_8 == 0) {
                  var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_15);
                  return var_24;
                }
                *var_15 = (int)var_31;
                var_15[1] = var_8;
                var_22 = (*(type_3 *)PTR_strlen_00158444)(var_26);
                (*(type_3 *)PTR_memmove_001585b8)(var_8,var_26,var_22 + 1);
                var_16 = var_16 + 1;
                var_24 = var_26;
                unaff_s6 = (int *)PTR_interrupt_state_00156848;
                unaff_s7 = (int *)PTR_terminating_signal_00156844;
                var_31 = var_15;
              }
              goto LAB_000de030;
            }
            if (var_23 == 0) {
              var_24 = function_1(var_1,pcStack_f4,var_10 & 0xfffffdff);
              if (var_24 != (char **)0x0) {
                if (*var_24 != (char *)0x0) {
                  var_25 = (int *)0x0;
                  var_15 = (int *)0x0;
                  var_26 = var_24;
                  do {
                    var_21 = (int *)(*(type_3 *)PTR_malloc_0015849c)(8);
                    if (var_21 == (int *)0x0) {
                      if (var_25 != (int *)0x0) {
                        var_24 = (char **)(*(type_3 *)PTR_free_001585ac)();
                        return var_24;
                      }
                      var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_24);
                      return var_24;
                    }
                    if (var_15 == (int *)0x0) {
                      var_15 = var_21;
                    }
                    *var_21 = (int)var_25;
                    var_21[1] = (int)*var_26;
                    var_26 = var_26 + 1;
                    var_25 = var_21;
                  } while (*var_26 != (char *)0x0);
                  var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_24);
                  return var_24;
                }
                if (var_24 != (char **)PTR_glob_error_return_001573cc) {
                  var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_24);
                  return var_24;
                }
              }
              goto LAB_000de17c;
            }
          }
          else {
            pcStack_f4 = var_27(dir,(char *)var_26,flags_00);
            var_23 = (*pcVar7)(pcStack_f4,var_10);
            if (-1 < var_23) goto LAB_000de13c;
            if ((var_10 & 8U) != 0) {
              var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(pcStack_f4);
              return var_24;
            }
            if ((var_10 & 0x10U) == 0) goto LAB_000de658;
          }
          if ((var_23 == -2) && (var_3 = (*pcVar7)(pcStack_f4,0), var_3 == 0)) {
            var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(pcStack_f4);
            return var_24;
          }
LAB_000de17c:
          var_28 = (type_4 *)(*(type_3 *)PTR_malloc_0015849c)(8);
          var_3 = (*(type_3 *)PTR_strlen_00158444)(pcStack_f4);
          var_8 = (*(type_3 *)PTR_malloc_0015849c)(var_3 + 1);
          if (var_28 != (type_4 *)0x0) {
            if (var_8 == 0) {
              var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_28);
              return var_24;
            }
            *var_28 = var_31;
            var_28[1] = var_8;
            (*(type_3 *)PTR_memmove_001585b8)(var_8,pcStack_f4,var_3 + 1);
            var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(pcStack_f4);
            return var_24;
          }
          if (var_8 != 0) {
            var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_8);
            return var_24;
          }
          var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(pcStack_f4);
          return var_24;
        }
        goto LAB_000de030;
      }
      var_24 = (char **)0x0;
      var_8 = var_2(dir,0);
      if (var_8 < 0) {
        var_24 = (char **)var_4(dir);
        return var_24;
      }
      var_10 = (*(type_3 *)PTR_strlen_00158444)();
      var_8 = (*(type_3 *)PTR_malloc_0015849c)(var_3 + var_10 + 2);
      var_29 = (char *)(*(type_3 *)PTR_malloc_0015849c)(var_3 + 1);
      if (var_8 != 0) {
        if (var_29 == (char *)0x0) {
          var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_8,var_1);
          return var_24;
        }
        (*(type_3 *)PTR_strcpy_001584cc)(var_29);
        var_30(var_29);
        (*(type_3 *)PTR_strcpy_001584cc)(var_8,dir);
        *(type_1 *)(var_8 + var_10) = 0x2f;
        (*(type_3 *)PTR_strcpy_001584cc)(var_8 + var_10 + 1,var_29);
        var_3 = (*(type_3 *)PTR___lxstat64_001582c8)(3,var_8,&finfo);
        if (-1 < var_3) {
          var_24 = (char **)(*(type_3 *)PTR_free_001585ac)();
          return var_24;
        }
        var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_8);
        return var_24;
      }
      if (var_29 != (char *)0x0) {
        var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_29);
        return var_24;
      }
      bVar1 = true;
    }
LAB_000ddefc:
    var_20 = var_5;
    var_21 = (int *)0x0;
  }
LAB_000ddf00:
  var_31 = var_15;
  if (bVar1) {
LAB_000ddf10:
    if (var_31 != (int *)0x0) {
      if (var_21 != (int *)0x0) {
        var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_31[1]);
        return var_24;
      }
      var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_31[1]);
      return var_24;
    }
    var_26 = (char **)0x0;
    var_15 = (int *)0x0;
  }
  else {
    var_1 = (char *)((var_16 + 1) * 4);
    var_26 = (char **)(*(type_3 *)PTR_malloc_0015849c)(var_1);
    if (var_26 == (char **)0x0) goto LAB_000ddf10;
    if (var_16 != 0) {
      var_24 = (char **)((int)((int)var_1 + -4) + (int)var_26);
      var_32 = var_26;
      do {
        *var_32 = (char *)var_31[1];
        var_32 = var_32 + 1;
        var_31 = (int *)*var_31;
      } while (var_24 != var_32);
    }
    var_1 = (char *)(var_26 + var_16 + 1);
    *(char **)((int)var_1 + -4) = (char *)0x0;
    if ((var_21 != (int *)0x0) && (var_15 != (int *)0x0)) {
      if (var_15 == var_21) {
        var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_21);
        return var_24;
      }
      var_24 = (char **)(*(type_3 *)PTR_free_001585ac)(var_15);
      return var_24;
    }
  }
  if (var_33 == *(char **)PTR___stack_chk_guard_0015858c) {
    return var_26;
  }
  pcVar28 = var_43;
  var_34 = PTR___stack_chk_fail_0015853c;
  (*(type_3 *)PTR___stack_chk_fail_0015853c)();
  *(type_3 **)(var_20 + -4) = pcVar28;
  *(type_1 **)(var_20 + -8) = auStack_128;
  *(int **)(var_20 + -0xc) = unaff_s7;
  *(int **)(var_20 + -0x10) = unaff_s6;
  *(type_2 *)(var_20 + -0x14) = var_16;
  *(int *)(var_20 + -0x18) = var_10;
  *(char **)(var_20 + -0x1c) = var_1;
  *(int **)(var_20 + -0x20) = var_21;
  *(char ***)(var_20 + -0x24) = var_26;
  *(int **)(var_20 + -0x28) = var_15;
  *(type_5 **)(var_20 + -0x50) = var_34 + 0x7fb4c;
  var_28 = (type_4 *)(**(type_3 **)(var_34 + 0x79aa8))(4);
  var_3 = *(int *)(var_20 + -0x50);
  if (var_28 == (type_4 *)0x0) {
    return (char **)0x0;
  }
  *var_28 = 0;
  var_29 = (char *)(**(type_3 **)(var_3 + -0x61d4))(var_33,0x2f);
  var_3 = *(int *)(var_20 + -0x50);
  if (var_29 == (char *)0x0) {
LAB_000deb88:
    bVar1 = false;
    var_36 = (char *)(*(int *)(var_3 + -0x7f90) + -0x47a0);
LAB_000deb94:
    if (*var_33 != '\0') {
      var_24 = (char **)(**(type_3 **)(var_3 + -0x5f94))();
      return var_24;
    }
    var_26 = (char **)(**(type_3 **)(var_3 + -0x6098))(var_28,8);
    var_3 = *(int *)(var_20 + -0x50);
    if (var_26 == (char **)0x0) {
      if (!bVar1) {
        return (char **)0x0;
      }
LAB_000df3a4:
      var_24 = (char **)(**(type_3 **)(var_3 + -0x5f94))(var_36);
      return var_24;
    }
    var_37 = (char *)0x0;
  }
  else {
    if (**(int **)(var_3 + -0x7bf8) != 0) {
      var_29 = var_35(var_33,0x2f);
      var_3 = *(int *)(var_20 + -0x50);
      if (var_29 == (char *)0x0) goto LAB_000deb88;
    }
    var_37 = var_29 + (1 - (int)var_33);
    var_36 = (char *)(**(type_3 **)(var_3 + -0x60a4))(var_29 + (2 - (int)var_33));
    if (var_36 == (char *)0x0) {
      var_24 = (char **)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x5f94))(var_28);
      return var_24;
    }
    var_39 = var_33;
    (**(type_3 **)(*(int *)(var_20 + -0x50) + -0x5fac))(var_36,var_33,var_37);
    var_3 = *(int *)(var_20 + -0x50);
    var_36[(int)var_37] = '\0';
    if (var_37 == (char *)0x0) {
      bVar1 = true;
      var_33 = var_29 + 1;
      goto LAB_000deb94;
    }
    var_8 = var_7(var_36,(int)var_39);
    if (var_8 == 1) {
      var_16 = (type_2)var_24 & 0xfffffffe;
      *(type_2 *)(var_20 + -0x44) = (type_2)var_24 & 0x400;
      var_33 = var_36;
      if (((type_2)var_24 & 0x400) == 0) {
        *(type_4 *)(var_20 + -0x48) = *(type_4 *)(var_20 + -0x44);
      }
      else {
        if (*var_36 == '*') {
          if (var_36[1] == '*') {
            var_39 = var_36;
            if ((var_36[2] == '/') || (var_36[2] == '\0')) {
              do {
                var_37 = var_39;
                var_39 = var_37;
                if (var_37[1] != '*') break;
                if (var_37[2] == '/') {
                  var_39 = var_37 + 3;
                  var_38 = var_37[3];
                  while (var_38 == '/') {
                    var_39 = var_39 + 1;
                    var_38 = *var_39;
                  }
                  var_33 = var_37;
                  if (var_38 == '\0') break;
                }
                else if (var_37[2] != '\0') {
                  var_38 = *var_37;
                  goto LAB_000dedb8;
                }
                var_33 = var_37;
              } while (*var_39 == '*');
              var_38 = *var_39;
LAB_000dedb8:
              *(int *)(var_20 + -0x40) = (int)var_38;
              *(type_2 *)(var_20 + -0x48) = (type_2)(var_38 == 0);
              var_37 = (char *)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x60fc))(var_33);
              var_16 = var_16 | 0x210;
              if (*(int *)(var_20 + -0x40) == 0) goto LAB_000dee6c;
            }
            else {
              *(type_4 *)(var_20 + -0x48) = 0;
            }
          }
          else {
            *(type_4 *)(var_20 + -0x48) = 0;
          }
        }
        else {
          *(type_4 *)(var_20 + -0x48) = 0;
        }
        var_42 = var_37;
        var_39 = var_37;
        if (3 < (int)var_37) {
          if (((var_33[(int)(var_37 + -1)] != '/') || (var_33[(int)(var_37 + -2)] != '*')) ||
             (var_33[(int)(var_37 + -3)] != '*')) goto LAB_000dee6c;
          var_41 = var_33 + (int)(var_37 + -6);
          while ((var_40 = var_39, var_39 = var_40, var_41[2] == '/' &&
                 (var_39 = var_40 + -3, var_42 = var_40, 3 < (int)var_39))) {
            if ((var_41[1] != '*') || (var_38 = *var_41, var_41 = var_41 + -3, var_38 != '*'))
            break;
          }
        }
        bVar1 = var_39 != var_37;
        var_37 = var_42;
        if ((((bVar1) && ((char *)0x4 < var_42)) && (var_29[1] == '*')) &&
           ((var_29[2] == '*' && (var_29[3] == '\0')))) {
          var_37 = var_42 + -3;
        }
      }
LAB_000dee6c:
      if (var_33[(int)(var_37 + -1)] == '/') {
        var_33[(int)(var_37 + -1)] = '\0';
      }
      var_24 = var_43(var_33,var_16 | 0x800);
      *(char ***)(var_20 + -0x30) = var_24;
      var_24 = (char **)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x5f94))(var_36);
      return var_24;
    }
    if (var_29[1] != '\0') {
      var_30(var_36);
      var_24 = (char **)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x5f94))(var_28);
      return var_24;
    }
    var_26 = (char **)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x6098))(var_28,8);
    var_3 = *(int *)(var_20 + -0x50);
    if (var_26 == (char **)0x0) goto LAB_000df3a4;
    if (var_37 == (char *)0x0) {
      bVar1 = true;
    }
    else {
      bVar1 = true;
      if (var_8 != 2) {
        var_29 = var_29 + (2 - (int)var_33);
        goto LAB_000df638;
      }
      if (((type_2)var_24 & 0x800) == 0) {
        bVar1 = true;
      }
      else {
        var_30(var_36);
        var_37 = (char *)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x60fc))(var_36);
        var_3 = *(int *)(var_20 + -0x50);
        bVar1 = true;
      }
    }
  }
  var_29 = var_37 + 1;
LAB_000df638:
  var_33 = (char *)(**(type_3 **)(var_3 + -0x60a4))(var_29);
  var_3 = *(int *)(var_20 + -0x50);
  *var_26 = var_33;
  if (var_33 == (char *)0x0) {
    var_24 = (char **)(**(type_3 **)(var_3 + -0x5f94))(var_26);
    return var_24;
  }
  (**(type_3 **)(var_3 + -0x5fac))(var_33,var_36,var_29);
  if (!bVar1) {
    var_26[1] = (char *)0x0;
    return var_26;
  }
  var_24 = (char **)(**(type_3 **)(*(int *)(var_20 + -0x50) + -0x5f94))(var_36);
  return var_24;
}


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

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

{
  bool bVar1;
  char cVar2;
  int iVar3;
  undefined1 *puVar4;
  code *pcVar5;
  undefined4 uVar6;
  int *piVar7;
  char *__pattern;
  char *pcVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int *piVar12;
  uint uVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  int iVar17;
  int *piVar18;
  char *pcVar19;
  int *unaff_s0;
  int *unaff_s2;
  char *pcVar20;
  uint unaff_s5;
  uint uVar21;
  int *unaff_s6;
  uint uVar22;
  undefined4 *puVar23;
  int *unaff_s7;
  undefined *puVar24;
  int iVar25;
  int iVar26;
  undefined1 *puVar27;
  code *pcVar28;
  undefined1 auStack_130 [8];
  undefined1 local_128 [8];
  int local_120;
  undefined1 *local_11c;
  int local_fc;
  int *local_f4;
  uint local_f0;
  int local_e8;
  int local_e4;
  int *local_e0;
  undefined1 auStack_d0 [164];
  char *local_2c;
  
  puVar27 = local_128;
  local_2c = *(char **)PTR___stack_chk_guard_0015858c;
  piVar18 = (int *)0x0;
  if ((param_1 == (int *)0x0) || (unaff_s5 = 0, *(char *)param_1 == '\0')) {
    piVar18 = (int *)0x0;
    iVar3 = FUN_000dd618(param_2);
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    puVar27 = local_128;
    if (iVar3 < 0) goto LAB_000de914;
    puVar27 = auStack_130;
    unaff_s0 = &local_120;
    local_120 = 0;
    puVar4 = (undefined1 *)(*(code *)PTR_malloc_0015849c)(1);
    bVar1 = puVar4 == (undefined1 *)0x0;
    if (bVar1) {
      unaff_s0 = (int *)0x0;
    }
    else {
      local_11c = puVar4;
      *puVar4 = 0;
    }
    unaff_s5 = (uint)!bVar1;
    puVar4 = auStack_130;
    if (param_1 == (int *)0x0) goto LAB_000ddefc;
    unaff_s2 = (int *)0x0;
    if (*(char *)param_1 != '\0') {
      local_e4 = 1;
      puVar27 = auStack_130;
      goto LAB_000ddf3c;
    }
    goto LAB_000ddf00;
  }
  local_e4 = 0;
  bVar1 = false;
  unaff_s0 = (int *)0x0;
LAB_000ddf3c:
  iVar3 = (*(code *)PTR_strlen_00158444)(param_1);
  puVar4 = puVar27;
  if (local_e4 != 0) {
LAB_000ddefc:
    puVar27 = puVar4;
    unaff_s2 = (int *)0x0;
    goto LAB_000ddf00;
  }
  iVar25 = glob_pattern_p((char *)param_1,(int)piVar18);
  if (iVar25 == 0) {
    piVar18 = (int *)0x0;
    iVar25 = FUN_000dd618(param_2);
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    if (-1 < iVar25) {
      param_3 = (int *)(*(code *)PTR_strlen_00158444)(param_2);
      piVar7 = (int *)(*(code *)PTR_malloc_0015849c)((undefined1 *)((int)param_3 + iVar3 + 2));
      iVar3 = (*(code *)PTR_malloc_0015849c)(iVar3 + 1);
      if (piVar7 == (int *)0x0) {
        if (iVar3 == 0) {
          bVar1 = true;
        }
        else {
          (*(code *)PTR_free_001585ac)(iVar3);
          bVar1 = true;
        }
      }
      else if (iVar3 == 0) {
        piVar18 = param_1;
        (*(code *)PTR_free_001585ac)(piVar7);
        bVar1 = true;
      }
      else {
        (*(code *)PTR_strcpy_001584cc)(iVar3);
        FUN_000ddacc(iVar3);
        (*(code *)PTR_strcpy_001584cc)(piVar7,param_2);
        *(undefined1 *)((int)piVar7 + (int)param_3) = 0x2f;
        (*(code *)PTR_strcpy_001584cc)((undefined1 *)((int)piVar7 + (int)((int)param_3 + 1)),iVar3);
        piVar18 = piVar7;
        iVar25 = (*(code *)PTR___lxstat64_001582c8)(3,piVar7,auStack_d0);
        if (iVar25 < 0) {
          (*(code *)PTR_free_001585ac)(piVar7);
          (*(code *)PTR_free_001585ac)(iVar3);
          unaff_s2 = (int *)0x0;
          goto LAB_000ddf00;
        }
        (*(code *)PTR_free_001585ac)();
        unaff_s0 = (int *)(puVar27 + 8);
        *unaff_s0 = 0;
        *(int *)(puVar27 + 0xc) = iVar3;
        unaff_s5 = 1;
        puVar4 = puVar27 + -8;
      }
      goto LAB_000ddefc;
    }
  }
  else {
    iVar3 = (*(code *)PTR_opendir_001582b8)();
    piVar7 = (int *)PTR_glob_error_return_001573cc;
    if (iVar3 != 0) {
      local_f0 = 1;
      if (*(int *)PTR_noglob_dot_filenames_00157468 != 0) {
        local_f0 = 5;
      }
      if (*(int *)PTR_glob_ignore_case_0015745c != 0) {
        local_f0 = local_f0 | 0x10;
      }
      if (*(int *)PTR_extended_glob_00156948 != 0) {
        local_f0 = local_f0 | 0x20;
      }
      uVar13 = (int)param_3 >> 2 & 4;
      uVar22 = (uint)param_3 & 0x100;
      uVar21 = uVar13 | 8;
      if (uVar22 == 0) {
        uVar21 = uVar13;
      }
      unaff_s2 = (int *)0x0;
      pcVar28 = (code *)(PTR_LAB_00157bb0 + -0x3104);
      pcVar5 = (code *)(PTR_LAB_00157bb0 + -0x29e8);
      piVar7 = unaff_s0;
      unaff_s6 = (int *)PTR_interrupt_state_00156848;
      piVar9 = (int *)PTR_terminating_signal_00156844;
LAB_000de030:
      do {
        unaff_s7 = piVar9;
        if (*unaff_s6 != 0) goto LAB_000de7e4;
        if (*unaff_s7 != 0) {
          bVar1 = true;
          goto LAB_000de200;
        }
        iVar25 = (*(code *)PTR_signal_is_pending_00157bdc)(2);
        if (iVar25 != 0) {
          bVar1 = true;
          goto LAB_000de200;
        }
        piVar10 = (int *)(*(code *)PTR_readdir64_0015832c)(iVar3);
        if (piVar10 == (int *)0x0) goto LAB_000de200;
        piVar9 = unaff_s7;
        if (*piVar10 != 0 || piVar10[1] != 0) {
          uVar13 = (*(code *)PTR___ctype_get_mb_cur_max_001584e0)();
          if (1 < uVar13) {
            piVar18 = (int *)((int)piVar10 + 0x13);
            iVar25 = FUN_000dd23c(param_1,piVar18,param_3);
            unaff_s6 = (int *)PTR_interrupt_state_00156848;
            piVar9 = (int *)PTR_terminating_signal_00156844;
            if (iVar25 != 0) goto LAB_000de030;
          }
          piVar10 = (int *)((int)piVar10 + 0x13);
          piVar18 = piVar10;
          iVar25 = (*pcVar28)(param_1,piVar10,param_3);
          unaff_s6 = (int *)PTR_interrupt_state_00156848;
          piVar9 = (int *)PTR_terminating_signal_00156844;
          if (iVar25 == 0) {
            if (((uint)param_3 & 0x18) == 0) {
LAB_000de13c:
              if (((uint)param_3 & 0x10) != 0) {
                if (local_fc == 0) {
                  piVar18 = local_f4;
                  piVar9 = (int *)MASKED(param_1,local_f4,(uint)param_3 & 0xfffffdff);
                  if (piVar9 != (int *)0x0) {
                    if (*piVar9 == 0) {
                      if (piVar9 != (int *)PTR_glob_error_return_001573cc) {
                        (*(code *)PTR_free_001585ac)(piVar9);
                      }
                    }
                    else {
                      local_e8 = local_fc;
                      local_e0 = (int *)0x0;
                      unaff_s7 = (int *)0x0;
                      unaff_s6 = piVar9;
                      do {
                        piVar10 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                        if (piVar10 == (int *)0x0) goto joined_r0x000de570;
                        if (unaff_s7 == (int *)0x0) {
                          unaff_s7 = piVar10;
                        }
                        *piVar10 = (int)local_e0;
                        piVar10[1] = *unaff_s6;
                        local_e8 = local_e8 + 1;
                        unaff_s6 = unaff_s6 + 1;
                        local_e0 = piVar10;
                      } while (*unaff_s6 != 0);
                      (*(code *)PTR_free_001585ac)(piVar9);
                      if (local_e8 != 0) {
                        if (unaff_s2 == (int *)0x0) {
                          unaff_s2 = unaff_s7;
                        }
                        *unaff_s7 = (int)piVar7;
                        unaff_s5 = unaff_s5 + local_e8;
                        piVar7 = piVar10;
                      }
                    }
                  }
                }
                else {
LAB_000de154:
                  piVar18 = (int *)0x0;
                  if ((local_fc == -2) && (iVar25 = (*pcVar5)(local_f4), iVar25 == 0)) {
                    (*(code *)PTR_free_001585ac)(local_f4);
                    unaff_s6 = (int *)PTR_interrupt_state_00156848;
                    piVar9 = (int *)PTR_terminating_signal_00156844;
                    goto LAB_000de030;
                  }
                }
                piVar9 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                if (unaff_s2 == (int *)0x0) {
                  unaff_s2 = piVar9;
                }
                iVar25 = (*(code *)PTR_strlen_00158444)(local_f4);
                unaff_s6 = (int *)(iVar25 + 1);
                iVar25 = (*(code *)PTR_malloc_0015849c)(unaff_s6);
                if (piVar9 == (int *)0x0) {
                  if (iVar25 != 0) {
                    (*(code *)PTR_free_001585ac)(iVar25);
                  }
                }
                else {
                  if (iVar25 != 0) {
                    *piVar9 = (int)piVar7;
                    piVar9[1] = iVar25;
                    piVar18 = local_f4;
                    (*(code *)PTR_memmove_001585b8)(iVar25,local_f4,unaff_s6);
                    (*(code *)PTR_free_001585ac)(local_f4);
                    unaff_s5 = unaff_s5 + 1;
                    piVar7 = piVar9;
                    unaff_s6 = (int *)PTR_interrupt_state_00156848;
                    piVar9 = (int *)PTR_terminating_signal_00156844;
                    goto LAB_000de030;
                  }
                  (*(code *)PTR_free_001585ac)(piVar9);
                }
                (*(code *)PTR_free_001585ac)(local_f4);
                bVar1 = true;
                goto LAB_000de200;
              }
              if (((uint)param_3 & 8) != 0) {
                (*(code *)PTR_free_001585ac)(local_f4);
              }
            }
            else {
              local_f4 = (int *)sh_makepath(param_2,piVar10,uVar21);
              piVar18 = param_3;
              local_fc = (*pcVar5)(local_f4);
              if (-1 < local_fc) goto LAB_000de13c;
              if (((uint)param_3 & 8) != 0) {
                (*(code *)PTR_free_001585ac)(local_f4);
                unaff_s6 = (int *)PTR_interrupt_state_00156848;
                piVar9 = (int *)PTR_terminating_signal_00156844;
                goto LAB_000de030;
              }
              if (((uint)param_3 & 0x10) != 0) goto LAB_000de154;
            }
            uVar6 = (*(code *)PTR_strlen_00158444)(piVar10);
            piVar18 = (int *)fnx_fromfs(piVar10,uVar6);
            iVar25 = strmatch(param_1,piVar18,local_f0);
            unaff_s6 = (int *)PTR_interrupt_state_00156848;
            piVar9 = (int *)PTR_terminating_signal_00156844;
            if (iVar25 != 1) {
              if (local_e4 < 100000) {
                unaff_s6 = (int *)(puVar27 + 8);
                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);
                puVar27 = puVar27 + -8;
                local_e4 = local_e4 + 8;
              }
              else {
                unaff_s6 = (int *)(*(code *)PTR_malloc_0015849c)(8);
                if (unaff_s2 == (int *)0x0) {
                  unaff_s2 = unaff_s6;
                }
                iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
                unaff_s7 = (int *)(*(code *)PTR_malloc_0015849c)(iVar25 + 1);
                if (unaff_s6 == (int *)0x0) {
                  if (unaff_s7 == (int *)0x0) {
                    bVar1 = true;
                  }
                  else {
                    (*(code *)PTR_free_001585ac)(unaff_s7);
                    bVar1 = true;
                  }
                  goto LAB_000de200;
                }
              }
              if (unaff_s7 == (int *)0x0) {
                (*(code *)PTR_free_001585ac)(unaff_s6);
                bVar1 = true;
                unaff_s7 = (int *)0x0;
                goto LAB_000de200;
              }
              *unaff_s6 = (int)piVar7;
              unaff_s6[1] = (int)unaff_s7;
              iVar25 = (*(code *)PTR_strlen_00158444)(piVar10);
              (*(code *)PTR_memmove_001585b8)(unaff_s7,piVar10,iVar25 + 1);
              unaff_s5 = unaff_s5 + 1;
              piVar18 = piVar10;
              piVar7 = unaff_s6;
              unaff_s6 = (int *)PTR_interrupt_state_00156848;
              piVar9 = (int *)PTR_terminating_signal_00156844;
            }
          }
        }
      } while( true );
    }
  }
  goto LAB_000de914;
LAB_000de7e4:
  bVar1 = true;
  goto LAB_000de200;
LAB_000df004:
  puVar23 = puVar23 + 1;
  pcVar19 = (char *)*puVar23;
  piVar9 = *(int **)(puVar27 + -0x30);
  if (pcVar19 == (char *)0x0) {
LAB_000df34c:
    if (*piVar9 != 0) {
      pcVar28 = *(code **)(iVar25 + -0x5f94);
      do {
        piVar9 = piVar9 + 1;
        (*pcVar28)();
        iVar25 = *(int *)(puVar27 + -0x50);
        pcVar28 = *(code **)(iVar25 + -0x5f94);
      } while (*piVar9 != 0);
    }
    (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));
    return piVar7;
  }
  goto LAB_000df010;
joined_r0x000de570:
  while (local_e0 != (int *)0x0) {
    local_e0 = (int *)*local_e0;
    (*(code *)PTR_free_001585ac)();
  }
  (*(code *)PTR_free_001585ac)(piVar9);
  (*(code *)PTR_free_001585ac)(local_f4);
  bVar1 = true;
LAB_000de200:
  (*(code *)PTR_closedir_001582bc)(iVar3);
  unaff_s0 = piVar7;
  if (((uint)param_3 & 0x210) == 0x210) {
    iVar3 = (*(code *)PTR_strlen_00158444)(param_2);
    param_3 = (int *)(iVar3 + 1);
    param_1 = (int *)(*(code *)PTR_malloc_0015849c)(param_3);
    unaff_s0 = (int *)(*(code *)PTR_malloc_0015849c)(8);
    if (unaff_s0 == (int *)0x0) {
      unaff_s0 = piVar7;
      if (param_1 != (int *)0x0) {
        (*(code *)PTR_free_001585ac)(param_1);
      }
    }
    else {
      if (param_1 != (int *)0x0) {
        unaff_s0[1] = (int)param_1;
        *unaff_s0 = (int)piVar7;
        if (uVar22 == 0) {
          (*(code *)PTR_memcpy_00158594)(param_1,param_2,param_3);
        }
        else {
          *(undefined1 *)param_1 = 0;
          param_2 = piVar18;
        }
        unaff_s5 = unaff_s5 + 1;
        piVar18 = param_2;
        goto LAB_000ddf00;
      }
      (*(code *)PTR_free_001585ac)(unaff_s0);
      unaff_s0 = piVar7;
    }
LAB_000ddf10:
    piVar7 = unaff_s0;
    if (unaff_s0 == (int *)0x0) {
      piVar7 = (int *)0x0;
    }
    else {
      do {
        if (unaff_s2 == (int *)0x0) {
          (*(code *)PTR_free_001585ac)(piVar7[1]);
          piVar7 = (int *)*piVar7;
        }
        else {
          if (piVar7 == unaff_s2) {
            unaff_s2 = (int *)0x0;
          }
          (*(code *)PTR_free_001585ac)(piVar7[1]);
          unaff_s0 = (int *)*piVar7;
          (*(code *)PTR_free_001585ac)(piVar7);
          piVar7 = unaff_s0;
        }
      } while (piVar7 != (int *)0x0);
    }
  }
  else {
LAB_000ddf00:
    if (bVar1) goto LAB_000ddf10;
    param_1 = (int *)((unaff_s5 + 1) * 4);
    piVar7 = (int *)(*(code *)PTR_malloc_0015849c)(param_1);
    if (piVar7 == (int *)0x0) goto LAB_000ddf10;
    if (unaff_s5 != 0) {
      piVar18 = (int *)((int)(param_1 + -1) + (int)piVar7);
      piVar9 = piVar7;
      piVar10 = unaff_s0;
      do {
        *piVar9 = piVar10[1];
        piVar9 = piVar9 + 1;
        piVar10 = (int *)*piVar10;
      } while (piVar18 != piVar9);
    }
    param_1 = piVar7 + unaff_s5 + 1;
    param_1[-1] = 0;
    piVar9 = unaff_s0;
    if (unaff_s2 != (int *)0x0) {
      while (piVar9 != (int *)0x0) {
        unaff_s0 = piVar9;
        if (piVar9 == unaff_s2) {
          (*(code *)PTR_free_001585ac)(unaff_s2);
          break;
        }
        param_1 = (int *)*piVar9;
        (*(code *)PTR_free_001585ac)(piVar9);
        piVar9 = param_1;
      }
    }
  }
LAB_000de914:
  if (local_2c == *(char **)PTR___stack_chk_guard_0015858c) {
    return piVar7;
  }
  pcVar28 = glob_filename;
  pcVar19 = local_2c;
  puVar24 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  *(code **)(puVar27 + -4) = pcVar28;
  *(undefined1 **)(puVar27 + -8) = local_128;
  *(int **)(puVar27 + -0xc) = unaff_s7;
  *(int **)(puVar27 + -0x10) = unaff_s6;
  *(uint *)(puVar27 + -0x14) = unaff_s5;
  *(int **)(puVar27 + -0x18) = param_3;
  *(int **)(puVar27 + -0x1c) = param_1;
  *(int **)(puVar27 + -0x20) = unaff_s2;
  *(int **)(puVar27 + -0x24) = piVar7;
  *(int **)(puVar27 + -0x28) = unaff_s0;
  *(undefined **)(puVar27 + -0x50) = puVar24 + 0x7fb4c;
  piVar7 = (int *)(**(code **)(puVar24 + 0x79aa8))(4);
  iVar3 = *(int *)(puVar27 + -0x50);
  if (piVar7 == (int *)0x0) {
    return (int *)0x0;
  }
  *piVar7 = 0;
  iVar3 = (**(code **)(iVar3 + -0x61d4))(pcVar19,0x2f);
  iVar25 = *(int *)(puVar27 + -0x50);
  if (iVar3 == 0) {
LAB_000deb88:
    iVar3 = 0;
    __pattern = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);
LAB_000deb94:
    if (*pcVar19 == '\0') {
      piVar7 = (int *)(**(code **)(iVar25 + -0x6098))(piVar7,8);
      iVar26 = *(int *)(puVar27 + -0x50);
      if (piVar7 == (int *)0x0) {
        if (iVar3 == 0) {
          return (int *)0x0;
        }
LAB_000df3a4:
        (**(code **)(iVar26 + -0x5f94))(__pattern);
        return (int *)0x0;
      }
      uVar21 = 0;
LAB_000df634:
      iVar17 = uVar21 + 1;
LAB_000df638:
      iVar26 = (**(code **)(iVar26 + -0x60a4))(iVar17);
      iVar25 = *(int *)(puVar27 + -0x50);
      *piVar7 = iVar26;
      if (iVar26 != 0) {
        (**(code **)(iVar25 + -0x5fac))(iVar26,__pattern,iVar17);
        if (iVar3 == 0) {
          piVar7[1] = 0;
          return piVar7;
        }
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
        piVar7[1] = 0;
        return piVar7;
      }
LAB_000df2ac:
      (**(code **)(iVar25 + -0x5f94))(piVar7);
      iVar25 = *(int *)(puVar27 + -0x50);
      if ((iVar3 == 0) || (__pattern == (char *)0x0)) {
        piVar18 = *(int **)(iVar25 + -0x7cfc);
      }
      else {
        (**(code **)(iVar25 + -0x5f94))(__pattern);
        iVar25 = *(int *)(puVar27 + -0x50);
        piVar18 = *(int **)(iVar25 + -0x7cfc);
      }
LAB_000df2c8:
      if (*piVar18 == 0) {
        piVar18 = *(int **)(iVar25 + -0x7cf8);
      }
      else {
        (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));
        iVar25 = *(int *)(puVar27 + -0x50);
        piVar18 = *(int **)(iVar25 + -0x7cf8);
      }
      if (*piVar18 == 0) {
        pcVar28 = *(code **)(iVar25 + -0x7d20);
      }
      else {
        (**(code **)(iVar25 + -0x7cf4))();
        pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);
      }
      (*pcVar28)();
      return (int *)0x0;
    }
    (**(code **)(iVar25 + -0x5f94))();
    iVar25 = *(int *)(puVar27 + -0x50);
    uVar22 = (uint)piVar18 & 0xfffffffe | 0x100;
    uVar13 = uVar22;
    if (((uint)piVar18 & 0x400) == 0) {
      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
    }
    else if (*pcVar19 == '*') {
      uVar21 = 0;
LAB_000df42c:
      pcVar8 = __pattern;
      if ((pcVar19[1] == '*') && (pcVar19[2] == '\0')) {
        uVar13 = uVar22 | 0x210;
        if (uVar21 == 0) {
          if (((uint)piVar18 & 0x10) == 0) {
            uVar13 = uVar22 & 0xfffffdff | 0x10;
          }
          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
        }
      }
      else {
        uVar13 = uVar22;
        if (uVar21 == 0) {
          pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
        }
      }
    }
    else {
      pcVar8 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x5e18);
    }
LAB_000debcc:
    piVar7 = (int *)MASKED(pcVar19,pcVar8,uVar13);
    iVar25 = *(int *)(puVar27 + -0x50);
    if (piVar7 != (int *)0x0) {
LAB_000debec:
      if (piVar7 != *(int **)(iVar25 + -0x7174)) {
        pcVar19 = __pattern;
        if ((uVar13 & 0x10) != 0) {
          pcVar19 = (char *)(*(int *)(iVar25 + -0x7f90) + -0x47a0);
        }
        piVar18 = (int *)FUN_000dd6dc(pcVar19,piVar7,piVar18);
        if (iVar3 == 0) {
          return piVar18;
        }
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
        return piVar18;
      }
    }
    if (iVar3 == 0) {
      piVar18 = *(int **)(iVar25 + -0x7cfc);
      goto LAB_000df4b0;
    }
  }
  else {
    if (**(int **)(iVar25 + -0x7bf8) != 0) {
      iVar3 = glob_dirscan(pcVar19,0x2f);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (iVar3 == 0) goto LAB_000deb88;
    }
    iVar17 = iVar3 - (int)pcVar19;
    uVar21 = iVar17 + 1;
    __pattern = (char *)(**(code **)(iVar25 + -0x60a4))(iVar17 + 2);
    if (__pattern == (char *)0x0) {
      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
      return (int *)0x0;
    }
    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5fac))(__pattern,pcVar19,uVar21);
    iVar25 = *(int *)(puVar27 + -0x50);
    __pattern[uVar21] = '\0';
    pcVar20 = (char *)(iVar3 + 1);
    if (uVar21 == 0) {
      iVar3 = 1;
      pcVar19 = pcVar20;
      goto LAB_000deb94;
    }
    iVar25 = glob_pattern_p(__pattern,(int)pcVar19);
    if (iVar25 == 1) {
      uVar13 = (uint)piVar18 & 0xfffffffe;
      *(uint *)(puVar27 + -0x44) = (uint)piVar18 & 0x400;
      pcVar19 = __pattern;
      if (((uint)piVar18 & 0x400) == 0) {
        *(undefined4 *)(puVar27 + -0x48) = *(undefined4 *)(puVar27 + -0x44);
      }
      else {
        if (*__pattern == '*') {
          if (__pattern[1] == '*') {
            pcVar8 = __pattern;
            if ((__pattern[2] == '/') || (__pattern[2] == '\0')) {
              do {
                pcVar15 = pcVar8;
                pcVar8 = pcVar15;
                if (pcVar15[1] != '*') break;
                if (pcVar15[2] == '/') {
                  pcVar8 = pcVar15 + 3;
                  cVar2 = pcVar15[3];
                  while (cVar2 == '/') {
                    pcVar8 = pcVar8 + 1;
                    cVar2 = *pcVar8;
                  }
                  pcVar19 = pcVar15;
                  if (cVar2 == '\0') break;
                }
                else if (pcVar15[2] != '\0') {
                  cVar2 = *pcVar15;
                  goto LAB_000dedb8;
                }
                pcVar19 = pcVar15;
              } while (*pcVar8 == '*');
              cVar2 = *pcVar8;
LAB_000dedb8:
              *(int *)(puVar27 + -0x40) = (int)cVar2;
              *(uint *)(puVar27 + -0x48) = (uint)(cVar2 == 0);
              uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(pcVar19);
              uVar13 = uVar13 | 0x210;
              if (*(int *)(puVar27 + -0x40) == 0) goto LAB_000dee6c;
            }
            else {
              *(undefined4 *)(puVar27 + -0x48) = 0;
            }
          }
          else {
            *(undefined4 *)(puVar27 + -0x48) = 0;
          }
        }
        else {
          *(undefined4 *)(puVar27 + -0x48) = 0;
        }
        uVar16 = uVar21;
        uVar22 = uVar21;
        if (3 < (int)uVar21) {
          if (((pcVar19[uVar21 - 1] != '/') || (pcVar19[uVar21 - 2] != '*')) ||
             (pcVar19[uVar21 - 3] != '*')) goto LAB_000dee6c;
          pcVar8 = pcVar19 + (uVar21 - 6);
          while ((uVar14 = uVar22, uVar22 = uVar14, pcVar8[2] == '/' &&
                 (uVar22 = uVar14 - 3, uVar16 = uVar14, 3 < (int)uVar22))) {
            if ((pcVar8[1] != '*') || (cVar2 = *pcVar8, pcVar8 = pcVar8 + -3, cVar2 != '*')) break;
          }
        }
        bVar1 = uVar22 != uVar21;
        uVar21 = uVar16;
        if ((((bVar1) && (4 < uVar16)) && (*(char *)(iVar3 + 1) == '*')) &&
           ((*(char *)(iVar3 + 2) == '*' && (*(char *)(iVar3 + 3) == '\0')))) {
          uVar21 = uVar16 - 3;
        }
      }
LAB_000dee6c:
      if (pcVar19[uVar21 - 1] == '/') {
        pcVar19[uVar21 - 1] = '\0';
      }
      iVar17 = glob_filename(pcVar19,uVar13 | 0x800);
      *(int *)(puVar27 + -0x30) = iVar17;
      (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(__pattern);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (iVar17 == 0) {
LAB_000df274:
        iVar3 = 1;
        __pattern = (char *)*piVar7;
        piVar18 = piVar7;
        while (__pattern != (char *)0x0) {
          piVar18 = piVar18 + 1;
          (**(code **)(iVar25 + -0x5f94))(__pattern);
          iVar25 = *(int *)(puVar27 + -0x50);
          __pattern = (char *)*piVar18;
        }
        goto LAB_000df2ac;
      }
      if (iVar17 == *(int *)(iVar25 + -0x7174)) {
        (**(code **)(iVar25 + -0x5f94))(piVar7);
        return *(int **)(puVar27 + -0x30);
      }
      pcVar19 = (char *)**(undefined4 **)(puVar27 + -0x30);
      if (pcVar19 == (char *)0x0) {
        (**(code **)(iVar25 + -0x5f94))(*(undefined4 **)(puVar27 + -0x30));
        (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
        return *(int **)(*(int *)(puVar27 + -0x50) + -0x7174);
      }
      puVar23 = *(undefined4 **)(puVar27 + -0x30);
      if (*(int *)(puVar27 + -0x48) != 0) {
        if (*(char *)(iVar3 + 1) != '*') {
          iVar17 = *(int *)(iVar25 + -0x7f90);
          goto LAB_000def94;
        }
        puVar23 = *(undefined4 **)(puVar27 + -0x30);
        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {
          (**(code **)(iVar25 + -0x5f94))(*(undefined4 *)(puVar27 + -0x30));
          iVar25 = *(int *)(puVar27 + -0x50);
          iVar3 = *(int *)(puVar27 + -0x48);
          __pattern = (char *)0x0;
          pcVar19 = pcVar20;
          goto LAB_000deb94;
        }
      }
      iVar17 = *(int *)(iVar25 + -0x7f90);
LAB_000def94:
      iVar26 = 1;
      *(int *)(puVar27 + -0x2c) = iVar17 + -0x5e18;
      *(undefined4 *)(puVar27 + -0x40) = *(undefined4 *)(iVar25 + -0x6960);
      *(int *)(puVar27 + -0x34) = *(int *)(iVar25 + -0x6990) + -0x2924;
LAB_000df010:
      uVar21 = (uint)piVar18 & 0xfffffdee;
      if ((*(int *)(puVar27 + -0x44) == 0) || (*(char *)(iVar3 + 1) != '*')) {
        if ((*pcVar19 == '\0') && (*(char *)(iVar3 + 1) != '\0')) goto LAB_000defd0;
      }
      else {
        if ((*(char *)(iVar3 + 2) == '*') && (*(char *)(iVar3 + 3) == '\0')) {
          uVar21 = uVar21 | 0x210;
        }
        if (*pcVar19 == '\0') {
LAB_000defd0:
          uVar21 = uVar21 | 0x100;
          pcVar19 = *(char **)(puVar27 + -0x2c);
        }
      }
      piVar9 = (int *)(**(code **)(puVar27 + -0x40))(pcVar20,pcVar19,uVar21);
      iVar25 = *(int *)(puVar27 + -0x50);
      if (piVar9 == (int *)0x0) goto LAB_000df26c;
      if (piVar9 == *(int **)(iVar25 + -0x7174)) goto LAB_000df004;
      *(uint *)(puVar27 + -0x38) = uVar21 & 0x10;
      if (((((uVar21 & 0x10) == 0) || (*(char *)(iVar3 + 1) != '*')) ||
          (*(char *)(iVar3 + 2) != '*')) ||
         ((*(char *)(iVar3 + 3) != '\0' && (*(char *)(iVar3 + 3) != '/')))) {
        piVar10 = (int *)(**(code **)(puVar27 + -0x34))(*puVar23,piVar9,piVar18);
        iVar25 = *(int *)(puVar27 + -0x50);
        *(undefined4 *)(puVar27 + -0x3c) = 0;
LAB_000df0a0:
        iVar17 = 0;
        if (*piVar10 != 0) {
LAB_000df0ac:
          iVar17 = 0;
          piVar12 = piVar10;
          do {
            piVar12 = piVar12 + 1;
            iVar17 = iVar17 + 1;
          } while (*piVar12 != 0);
        }
      }
      else {
        *(uint *)(puVar27 + -0x3c) = uVar21 & 0x100;
        piVar10 = piVar9;
        if ((uVar21 & 0x100) == 0) goto LAB_000df0a0;
        *(uint *)(puVar27 + -0x3c) = (uint)piVar18 & 0x100;
        if (((uint)piVar18 & 0x100) != 0) {
          *(undefined4 *)(puVar27 + -0x3c) = 0;
          goto LAB_000df0a0;
        }
        if ((char *)*piVar9 != (char *)0x0) {
          piVar12 = piVar9;
          if (*(char *)*piVar9 == '\0') {
            do {
              *(int *)(puVar27 + -0x3c) = *(int *)(puVar27 + -0x3c) + 1;
              pcVar19 = (char *)piVar12[1];
              if (pcVar19 == (char *)0x0) {
                *piVar9 = piVar9[*(int *)(puVar27 + -0x3c)];
                *(undefined4 *)(puVar27 + -0x3c) = 1;
                goto LAB_000df0a0;
              }
              piVar12 = piVar12 + 1;
            } while (*pcVar19 == '\0');
            iVar17 = *(int *)(puVar27 + -0x3c);
            piVar12 = piVar9 + iVar17;
            do {
              iVar11 = *piVar12;
              piVar12[-iVar17] = iVar11;
              piVar12 = piVar12 + 1;
            } while (iVar11 != 0);
            *(undefined4 *)(puVar27 + -0x3c) = 1;
            goto LAB_000df0a0;
          }
          goto LAB_000df0ac;
        }
        iVar17 = 0;
      }
      iVar17 = (**(code **)(iVar25 + -0x6098))(piVar7,(iVar26 + iVar17) * 4);
      iVar25 = *(int *)(puVar27 + -0x50);
      *(int *)(puVar27 + -0x48) = iVar17;
      if (iVar17 == 0) {
        pcVar28 = *(code **)(iVar25 + -0x5f94);
        iVar3 = *piVar10;
        piVar18 = piVar10;
        while (iVar3 != 0) {
          piVar18 = piVar18 + 1;
          (*pcVar28)();
          iVar25 = *(int *)(puVar27 + -0x50);
          pcVar28 = *(code **)(iVar25 + -0x5f94);
          iVar3 = *piVar18;
        }
        (**(code **)(iVar25 + -0x5f94))(piVar10);
        iVar25 = *(int *)(puVar27 + -0x50);
LAB_000df26c:
        piVar18 = *(int **)(iVar25 + -0x7cfc);
        if (piVar7 == (int *)0x0) goto LAB_000df2c8;
        goto LAB_000df274;
      }
      iVar17 = *piVar10;
      if (iVar17 != 0) {
        iVar11 = *(int *)(puVar27 + -0x48) + iVar26 * 4;
        piVar7 = piVar10;
        do {
          piVar7 = piVar7 + 1;
          iVar26 = iVar26 + 1;
          *(int *)(iVar11 + -4) = iVar17;
          iVar17 = *piVar7;
          iVar11 = iVar11 + 4;
        } while (iVar17 != 0);
      }
      *(undefined4 *)(*(int *)(puVar27 + -0x48) + (iVar26 + 0x3fffffff) * 4) = 0;
      if (piVar9 == piVar10) {
        iVar17 = *(int *)(puVar27 + -0x3c);
        if (*(int *)(puVar27 + -0x38) != 0) {
          if (*(char *)(iVar3 + 1) != '*') goto LAB_000df14c;
          iVar17 = *(int *)(puVar27 + -0x3c);
          if (*(char *)(iVar3 + 2) == '*') {
            if (*(char *)(iVar3 + 3) != '\0') goto LAB_000df14c;
            (**(code **)(iVar25 + -0x5f94))(piVar10);
            iVar25 = *(int *)(puVar27 + -0x50);
            iVar17 = *(int *)(puVar27 + -0x3c);
          }
        }
      }
      else {
        (**(code **)(iVar25 + -0x5f94))(piVar10);
        iVar25 = *(int *)(puVar27 + -0x50);
LAB_000df14c:
        iVar17 = *(int *)(puVar27 + -0x3c);
      }
      piVar7 = *(int **)(puVar27 + -0x48);
      if (iVar17 == 0) goto LAB_000df004;
      piVar9 = *(int **)(puVar27 + -0x30);
      goto LAB_000df34c;
    }
    if (*(char *)(iVar3 + 1) == '\0') {
      piVar7 = (int *)(**(code **)(*(int *)(puVar27 + -0x50) + -0x6098))(piVar7,8);
      iVar26 = *(int *)(puVar27 + -0x50);
      if (piVar7 == (int *)0x0) goto LAB_000df3a4;
      if (uVar21 == 0) {
        iVar3 = 1;
        goto LAB_000df634;
      }
      iVar3 = 1;
      if (iVar25 == 2) {
        if (((uint)piVar18 & 0x800) == 0) {
          iVar3 = 1;
        }
        else {
          FUN_000ddacc(__pattern);
          uVar21 = (**(code **)(*(int *)(puVar27 + -0x50) + -0x60fc))(__pattern);
          iVar26 = *(int *)(puVar27 + -0x50);
          iVar3 = 1;
        }
        goto LAB_000df634;
      }
      iVar17 = iVar17 + 2;
      goto LAB_000df638;
    }
    FUN_000ddacc(__pattern);
    (**(code **)(*(int *)(puVar27 + -0x50) + -0x5f94))(piVar7);
    iVar25 = *(int *)(puVar27 + -0x50);
    uVar22 = (uint)piVar18 & 0xfffffffe;
    uVar13 = uVar22;
    if (((uint)piVar18 & 0x400) != 0) {
      if (*(char *)(iVar3 + 1) == '*') {
        iVar3 = 1;
        pcVar19 = pcVar20;
        goto LAB_000df42c;
      }
      iVar3 = 1;
      pcVar8 = __pattern;
      pcVar19 = pcVar20;
      goto LAB_000debcc;
    }
    piVar7 = (int *)MASKED(pcVar20,__pattern,uVar22);
    iVar25 = *(int *)(puVar27 + -0x50);
    if (piVar7 != (int *)0x0) {
      iVar3 = 1;
      goto LAB_000debec;
    }
  }
  (**(code **)(iVar25 + -0x5f94))(__pattern);
  iVar25 = *(int *)(puVar27 + -0x50);
  piVar18 = *(int **)(iVar25 + -0x7cfc);
LAB_000df4b0:
  if (*piVar18 == 0) {
    piVar18 = *(int **)(iVar25 + -0x7cf8);
  }
  else {
    (**(code **)(iVar25 + -0x7ce8))(**(undefined4 **)(iVar25 + -0x7cfc));
    iVar25 = *(int *)(puVar27 + -0x50);
    piVar18 = *(int **)(iVar25 + -0x7cf8);
  }
  if (*piVar18 == 0) {
    pcVar28 = *(code **)(iVar25 + -0x7d20);
  }
  else {
    (**(code **)(iVar25 + -0x7cf4))();
    pcVar28 = *(code **)(*(int *)(puVar27 + -0x50) + -0x7d20);
  }
  (*pcVar28)();
  return piVar7;
}

