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

uintmax_t __regparm3
gobble_file(char *name,filetype type,ino_t inode,_Bool command_line_arg,char *dirname)

{
  int iVar1;
  char cVar2;
  __nlink_t _Var3;
  uid_t uVar4;
  __dev_t *p_Var5;
  int iVar6;
  Dereference_symlink DVar7;
  fileinfo *pfVar8;
  _Bool _Var9;
  int iVar10;
  filetype fVar11;
  char *pcVar12;
  size_t sVar13;
  char *pcVar14;
  char *pcVar15;
  size_t sVar16;
  uint *puVar17;
  int *piVar18;
  uint *puVar19;
  char cVar20;
  undefined3 in_register_00000005;
  uint uVar21;
  acl_type aVar22;
  char cVar23;
  uint uVar24;
  undefined1 *puVar25;
  undefined1 *puVar26;
  undefined1 *puVar27;
  undefined4 uVar28;
  byte *pbVar29;
  stat *psVar30;
  stat *psVar31;
  undefined4 *puVar32;
  undefined4 uVar33;
  byte *pbVar34;
  int in_GS_OFFSET;
  bool bVar35;
  bool bVar36;
  char cVar37;
  byte bVar38;
  undefined1 auStack_35c [11];
  char local_351;
  uint *local_350;
  uint local_34c;
  stat *local_348;
  uint local_344;
  uint local_340;
  filetype local_33c;
  uint *local_338;
  uint *local_334;
  fileinfo *local_330;
  stat linkstats;
  char b [21];
  char buf [652];
  
  bVar38 = 0;
  local_338 = (uint *)name;
  local_344 = CONCAT31(in_register_00000005,command_line_arg);
  local_33c = type;
  local_348 = (stat *)inode;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (cwd_n_used == cwd_n_alloc) {
    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||
       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
      xalloc_die();
    }
    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);
    cwd_n_alloc = cwd_n_alloc << 1;
  }
  puVar26 = auStack_35c;
  puVar25 = auStack_35c;
  puVar27 = auStack_35c;
  local_330 = cwd_file + cwd_n_used;
  puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc);
  local_330->name = (char *)0x0;
  *(undefined4 *)&local_330->has_capability = 0;
  uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2;
  for (; uVar21 != 0; uVar21 = uVar21 - 1) {
    *puVar32 = 0;
    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;
  }
  *(undefined4 *)&(local_330->stat).st_ino = 0;
  *(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0;
  bVar35 = cwd_some_quoted == false;
  local_330->quoted = -1;
  local_330->filetype = local_33c;
  if ((bVar35) && (align_variable_outer_quotes != false)) {
    _Var9 = needs_quoting((char *)local_338);
    local_330->quoted = (uint)_Var9;
    if (_Var9) {
      cwd_some_quoted = true;
    }
  }
  local_34c = CONCAT31(local_34c._1_3_,print_hyperlink);
  if ((char)local_344 == '\0') {
    if (print_hyperlink != false) {
      cVar37 = (char)*local_338;
      if (cVar37 == '/') {
        local_334 = local_338;
        puVar26 = auStack_35c;
      }
      else {
        cVar23 = (char)local_348->st_dev;
        local_334 = local_338;
        puVar26 = auStack_35c;
        if (cVar23 != '\0') goto LAB_00018b15;
      }
      goto LAB_0001896e;
    }
    if ((format_needs_stat != false) ||
       (((local_33c == directory && (print_with_color != false)) &&
        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||
         ((_Var9 = is_colored(C_STICKY), _Var9 ||
          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {
LAB_00018410:
      cVar37 = (char)*local_338;
      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;
      local_348 = &local_330->stat;
      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {
        local_334 = local_338;
        puVar27 = auStack_35c;
      }
      else {
        local_334 = local_338;
        if (dereference == DEREF_ALWAYS) goto LAB_00018210;
      }
      goto LAB_00018470;
    }
    if (print_inode != false) {
      if ((local_33c == symbolic_link) || (local_33c == unknown)) {
LAB_00018f48:
        if ((dereference != DEREF_ALWAYS) &&
           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&
            (print_inode == false)))) {
          if (format_needs_type == false) goto LAB_00018fd0;
          if (local_33c != unknown) goto LAB_000183a9;
        }
      }
      goto LAB_00018410;
    }
    if (format_needs_type == false) {
LAB_00018fd0:
      uVar28 = 0;
      uVar33 = 0;
    }
    else {
      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;
      if (format_needs_type == false) goto LAB_00018fd0;
LAB_000183a9:
      uVar28 = 0;
      uVar33 = 0;
      puVar26 = auStack_35c;
      if ((local_33c == normal) &&
         ((indicator_style == classify ||
          ((puVar26 = auStack_35c, print_with_color != false &&
           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||
            ((_Var9 = is_colored(C_SETGID), _Var9 ||
             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;
    }
  }
  else {
    cVar37 = (char)*local_338;
    local_334 = local_338;
    puVar26 = auStack_35c;
    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')
       ) {
LAB_00018b15:
      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);
      local_351 = cVar23;
      sVar13 = strlen((char *)local_338);
      psVar30 = local_348;
      sVar16 = strlen((char *)local_348);
      cVar23 = local_351;
      cVar37 = *(char *)((int)&psVar30->st_dev + 1);
      cVar20 = (char)local_350;
      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);
      puVar26 = auStack_35c + iVar10;
      local_334 = (uint *)((int)&local_350 + iVar10);
      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {
        local_351 = cVar20;
        psVar30 = local_348;
        puVar19 = local_334;
        while( true ) {
          cVar2 = cVar37;
          local_350 = (uint *)((int)puVar19 + 1);
          psVar31 = (stat *)((int)&psVar30->st_dev + 1);
          *(char *)puVar19 = cVar23;
          if (cVar2 == '\0') break;
          p_Var5 = &psVar30->st_dev;
          psVar30 = psVar31;
          puVar19 = local_350;
          cVar37 = *(char *)((int)p_Var5 + 2);
          cVar23 = cVar2;
        }
        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {
          *(char *)local_350 = '/';
          local_350 = (uint *)((int)puVar19 + 2);
        }
      }
      puVar19 = local_338;
      if (cVar20 != '\0') {
        do {
          puVar17 = (uint *)((int)local_350 + 1);
          *(char *)local_350 = cVar20;
          cVar20 = *(char *)((int)puVar19 + 1);
          local_350 = puVar17;
          puVar19 = (uint *)((int)puVar19 + 1);
        } while (cVar20 != '\0');
      }
      *(char *)local_350 = '\0';
    }
    if ((char)local_34c != '\0') {
LAB_0001896e:
      *(undefined4 *)(puVar26 + -0xc) = 2;
      *(uint **)(puVar26 + -0x10) = local_334;
      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;
      pcVar12 = canonicalize_filename_mode
                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));
      local_330->absolute_name = pcVar12;
      if (pcVar12 == (char *)0x0) {
        *(undefined4 *)(puVar26 + -8) = 5;
        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";
        *(undefined4 *)(puVar26 + -0x10) = 0;
        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;
        pcVar12 = (char *)dcgettext();
        puVar19 = local_334;
        _Var9 = (_Bool)(char)local_344;
        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;
        file_failure(_Var9,pcVar12,(char *)puVar19);
      }
    }
    DVar7 = dereference;
    local_348 = &local_330->stat;
    puVar27 = puVar26;
    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;
    if (dereference < DEREF_ALWAYS) {
      if ((char)local_344 == '\0') {
LAB_00018470:
        *(stat **)(puVar27 + -8) = local_348;
        cVar37 = '\0';
        *(uint **)(puVar27 + -0xc) = local_334;
        *(undefined4 *)(puVar27 + -0x10) = 3;
        *(undefined4 *)(puVar27 + -0x14) = 0x18488;
        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),
                            *(stat64 **)(puVar27 + -8));
        puVar26 = puVar27;
        goto joined_r0x0001848d;
      }
      *(stat **)(puVar26 + -8) = &local_330->stat;
      *(uint **)(puVar26 + -0xc) = local_334;
      *(undefined4 *)(puVar26 + -0x10) = 3;
      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;
      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),
                         *(stat64 **)(puVar26 + -8));
      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {
        if (iVar10 < 0) {
          *(undefined4 *)(puVar26 + -4) = 0x18f95;
          piVar18 = __errno_location();
          if (*piVar18 != 2) goto LAB_00018f9e;
        }
        else {
          local_34c = (local_330->stat).st_mode;
          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;
        }
        goto LAB_00018470;
      }
LAB_00018a1e:
      if (iVar10 != 0) {
LAB_00018f9e:
        uVar28 = 0;
        uVar33 = 0;
        *(undefined4 *)(puVar26 + -8) = 5;
        *(char **)(puVar26 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar26 + -0x10) = 0;
        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;
        pcVar12 = (char *)dcgettext();
        puVar19 = local_334;
        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;
        file_failure(true,pcVar12,(char *)puVar19);
        goto LAB_0001831b;
      }
      cVar37 = (char)local_344;
    }
    else {
      puVar25 = puVar26;
      if (dereference != DEREF_ALWAYS) goto LAB_00018470;
LAB_00018210:
      *(stat **)(puVar25 + -8) = local_348;
      cVar37 = '\x01';
      *(uint **)(puVar25 + -0xc) = local_334;
      *(undefined4 *)(puVar25 + -0x10) = 3;
      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;
      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),
                         *(stat64 **)(puVar25 + -8));
      puVar26 = puVar25;
joined_r0x0001848d:
      if (iVar10 != 0) {
        uVar28 = 0;
        uVar33 = 0;
        *(undefined4 *)(puVar26 + -8) = 5;
        *(char **)(puVar26 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar26 + -0x10) = 0;
        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;
        pcVar12 = (char *)dcgettext();
        puVar19 = local_334;
        _Var9 = (_Bool)(char)local_344;
        *(undefined4 *)(puVar26 + -0x14) = 0x184be;
        file_failure(_Var9,pcVar12,(char *)puVar19);
        if ((char)local_344 != '\0') goto LAB_0001831b;
        goto LAB_000182fb;
      }
    }
    local_330->stat_ok = true;
    if (((local_33c == normal) ||
        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&
       (print_with_color != false)) {
      *(undefined4 *)(puVar26 + -4) = 0x188e7;
      _Var9 = is_colored(C_CAP);
      if (_Var9) {
        iVar10 = (int)(local_330->stat).st_dev;
        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);
        *(undefined4 *)(puVar26 + -4) = 0x18906;
        piVar18 = __errno_location();
        fVar11 = DAT_0003b39c;
        iVar6 = unsupported_device_10505;
        *piVar18 = 0x5f;
        if (local_33c != fVar11 || iVar6 != iVar10) {
          DAT_0003b39c = local_33c;
          unsupported_device_10505 = iVar10;
        }
        local_330->has_capability = false;
      }
    }
    pfVar8 = local_330;
    if ((format == long_format) || (print_scontext != false)) {
      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&
          (int)(local_330->stat).st_dev == unsupported_device_10493) {
        *(undefined4 *)(puVar26 + -4) = 0x18eca;
        piVar18 = __errno_location();
        *piVar18 = 0x5f;
        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;
LAB_00018ee0:
        if (format != long_format) {
          local_330->acl_type = ACL_T_NONE;
          goto LAB_00018287;
        }
        cVar37 = false;
LAB_00018ca7:
        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&
            (int)(local_330->stat).st_dev == unsupported_device_10499) {
          *piVar18 = 0x5f;
          uVar21 = 0;
LAB_0001900a:
          aVar22 = ACL_T_LSM_CONTEXT_ONLY;
          if ((bool)cVar37 == false) {
            aVar22 = ACL_T_NONE;
            cVar37 = any_has_acl;
          }
        }
        else {
          *piVar18 = 0;
          *(stat **)(puVar26 + -0xc) = local_348;
          *(uint **)(puVar26 + -0x10) = local_334;
          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;
          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));
          if ((int)uVar21 < 1) {
            uVar21 = uVar21 >> 0x1f;
            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {
              unsupported_device_10499 = (int)(local_330->stat).st_dev;
              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);
            }
            goto LAB_0001900a;
          }
          uVar21 = 0;
          aVar22 = ACL_T_YES;
          cVar37 = '\x01';
        }
        any_has_acl = (_Bool)cVar37;
        local_330->acl_type = aVar22;
        if (uVar21 != 0) {
LAB_00018ac2:
          *(uint **)(puVar26 + -8) = local_334;
          *(undefined4 *)(puVar26 + -0xc) = 3;
          *(undefined4 *)(puVar26 + -0x10) = 0;
          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;
          pcVar12 = quotearg_n_style_colon
                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),
                               *(char **)(puVar26 + -8));
          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;
          piVar18 = __errno_location();
          *(char **)(puVar26 + -0x14) = pcVar12;
          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;
          *(int *)(puVar26 + -0x1c) = *piVar18;
          *(undefined4 *)(puVar26 + -0x20) = 0;
          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;
          error();
        }
      }
      else {
        if (cVar37 != '\0') {
          *(char ***)(puVar26 + -0xc) = &local_330->scontext;
          *(uint **)(puVar26 + -0x10) = local_334;
          *(undefined4 *)(puVar26 + -0x14) = 0x18732;
          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),
                                  *(security_context_t **)(puVar26 + -0xc));
          if (-1 < iVar10) goto LAB_0001873d;
LAB_00018a52:
          *(undefined4 *)(puVar26 + -4) = 0x18a57;
          piVar18 = __errno_location();
          iVar10 = *piVar18;
          bVar35 = iVar10 == 0x5f;
          local_33c = CONCAT31(local_33c._1_3_,bVar35);
          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {
            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);
            unsupported_device_10493 = (int)(local_330->stat).st_dev;
          }
          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;
          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;
          local_330->acl_type = ACL_T_NONE;
          goto LAB_00018ac2;
        }
        *(char ***)(puVar26 + -0xc) = &local_330->scontext;
        *(uint **)(puVar26 + -0x10) = local_334;
        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;
        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),
                                 *(security_context_t **)(puVar26 + -0xc));
        if (iVar10 < 0) goto LAB_00018a52;
LAB_0001873d:
        bVar36 = iVar10 == 0;
        bVar35 = false;
        iVar10 = 10;
        pbVar29 = (byte *)"unlabeled";
        pbVar34 = (byte *)local_330->scontext;
        do {
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          bVar35 = *pbVar29 < *pbVar34;
          bVar36 = *pbVar29 == *pbVar34;
          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;
          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;
        } while (bVar36);
        cVar37 = (!bVar35 && !bVar36) != bVar35;
        if (format == long_format) {
          *(undefined4 *)(puVar26 + -4) = 0x18ca5;
          piVar18 = __errno_location();
          goto LAB_00018ca7;
        }
        if ((!bVar35 && !bVar36) == bVar35) {
          local_330->acl_type = ACL_T_NONE;
          goto LAB_00018287;
        }
        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;
        any_has_acl = true;
      }
      local_33c = (local_330->stat).st_mode;
      fVar11 = local_33c & 0xf000;
      if (fVar11 != 0xa000) goto LAB_000182a0;
      if (format != long_format) goto LAB_00018da0;
LAB_000187b9:
      pfVar8 = local_330;
      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;
      *(uint **)(puVar26 + -0x10) = local_334;
      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;
      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));
      pfVar8->linkname = pcVar12;
      if (pcVar12 == (char *)0x0) {
        *(undefined4 *)(puVar26 + -8) = 5;
        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";
        *(undefined4 *)(puVar26 + -0x10) = 0;
        *(undefined4 *)(puVar26 + -0x14) = 0x19043;
        pcVar12 = (char *)dcgettext();
        puVar19 = local_334;
        _Var9 = (_Bool)(char)local_344;
        *(undefined4 *)(puVar26 + -0x14) = 0x19059;
        file_failure(_Var9,pcVar12,(char *)puVar19);
        pcVar12 = local_330->linkname;
        if (pcVar12 != (char *)0x0) goto LAB_000187e0;
LAB_0001906d:
        pcVar14 = (char *)0x0;
      }
      else {
LAB_000187e0:
        if (*pcVar12 == '/') {
LAB_00018f18:
          *(char **)(puVar26 + -0x10) = pcVar12;
          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;
          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));
        }
        else {
          *(uint **)(puVar26 + -0x10) = local_334;
          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;
          fVar11 = dir_len(*(char **)(puVar26 + -0x10));
          if (fVar11 == unknown) goto LAB_00018f18;
          local_33c = fVar11;
          *(char **)(puVar26 + -0x10) = pcVar12;
          *(undefined4 *)(puVar26 + -0x14) = 0x18811;
          sVar13 = strlen(*(char **)(puVar26 + -0x10));
          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;
          *(undefined4 *)(puVar26 + -0x14) = 0x18823;
          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));
          fVar11 = local_33c;
          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {
            fVar11 = local_33c + fifo;
          }
          *(filetype *)(puVar26 + -8) = fVar11;
          *(uint **)(puVar26 + -0xc) = local_334;
          *(char **)(puVar26 + -0x10) = pcVar14;
          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;
          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),
                            *(size_t *)(puVar26 + -8));
          *(char **)(puVar26 + -0xc) = pcVar12;
          *(char **)(puVar26 + -0x10) = pcVar15;
          *(undefined4 *)(puVar26 + -0x14) = 0x18857;
          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));
        }
        pfVar8 = local_330;
        if (pcVar14 == (char *)0x0) goto LAB_0001906d;
        if (local_330->quoted == 0) {
          pcVar12 = local_330->linkname;
          *(undefined4 *)(puVar26 + -4) = 0x1911a;
          _Var9 = needs_quoting(pcVar12);
          if (_Var9) {
            pfVar8->quoted = -1;
          }
        }
        if ((slash < indicator_style) || (check_symlink_color != false)) {
          *(stat **)(puVar26 + -8) = &linkstats;
          *(char **)(puVar26 + -0xc) = pcVar14;
          *(undefined4 *)(puVar26 + -0x10) = 3;
          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;
          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),
                             *(stat64 **)(puVar26 + -8));
          if (iVar10 == 0) {
            local_330->linkok = true;
            if ((((char)local_344 == '\0') || (format == long_format)) ||
               ((linkstats.st_mode & 0xf000) != 0x4000)) {
              local_330->linkmode = linkstats.st_mode;
            }
          }
        }
      }
      *(char **)(puVar26 + -0x10) = pcVar14;
      *(undefined4 *)(puVar26 + -0x14) = 0x18899;
      free(*(void **)(puVar26 + -0x10));
      local_334 = (uint *)(local_330->stat).st_mode;
      fVar11 = (uint)local_334 & 0xf000;
      if (fVar11 != 0xa000) goto LAB_000182a0;
LAB_000188bb:
      local_330->filetype = symbolic_link;
    }
    else {
LAB_00018287:
      local_33c = (local_330->stat).st_mode;
      fVar11 = local_33c & 0xf000;
      if (fVar11 == 0xa000) {
LAB_00018da0:
        if (check_symlink_color != false) goto LAB_000187b9;
        goto LAB_000188bb;
      }
LAB_000182a0:
      if (fVar11 == 0x4000) {
        if (((char)local_344 == '\0') || (immediate_dirs != false)) {
          local_330->filetype = directory;
        }
        else {
          local_330->filetype = arg_directory;
        }
      }
      else {
        local_330->filetype = normal;
      }
    }
    uVar28 = (undefined4)(local_330->stat).st_blocks;
    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);
    if ((format == long_format) || (print_block_size != false)) {
      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;
      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;
      *(undefined4 *)(puVar26 + -0xc) = 0;
      *(undefined4 *)(puVar26 + -0x10) = 0x200;
      *(int *)(puVar26 + -0x14) = human_output_opts;
      *(char **)(puVar26 + -0x18) = buf;
      *(undefined4 *)(puVar26 + -0x1c) = uVar33;
      *(undefined4 *)(puVar26 + -0x20) = uVar28;
      local_334 = (uint *)buf;
      *(undefined4 *)(puVar26 + -0x24) = 0x18505;
      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),
                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),
                               *(uintmax_t *)(puVar26 + -8));
      *(undefined4 *)(puVar26 + -0xc) = 0;
      *(char **)(puVar26 + -0x10) = pcVar12;
      *(undefined4 *)(puVar26 + -0x14) = 0x18510;
      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));
      if (block_size_width < iVar10) {
        block_size_width = iVar10;
      }
      if (format != long_format) goto LAB_000182df;
      if (print_owner != false) {
        uVar4 = (local_330->stat).st_uid;
        *(undefined4 *)(puVar26 + -4) = 0x18eae;
        iVar10 = format_user_width(uVar4);
        if (owner_width < iVar10) {
          owner_width = iVar10;
        }
      }
      if (print_group != false) {
        uVar21 = (local_330->stat).st_gid;
        if (numeric_ids == false) {
          local_344 = uVar21;
          *(uint *)(puVar26 + -0x10) = uVar21;
          *(undefined4 *)(puVar26 + -0x14) = 0x190df;
          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));
          uVar21 = local_344;
          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;
          *(undefined4 *)(puVar26 + -0xc) = 0;
          *(char **)(puVar26 + -0x10) = pcVar12;
          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;
          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));
          if ((int)pcVar12 < 0) {
            pcVar12 = (char *)0x0;
          }
        }
        else {
LAB_00018e2e:
          *(uint *)(puVar26 + -0x10) = uVar21;
          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;
          *(undefined4 *)(puVar26 + -0x18) = 0xb;
          *(undefined4 *)(puVar26 + -0x1c) = 1;
          *(uint **)(puVar26 + -0x20) = local_334;
          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;
          __sprintf_chk();
          puVar19 = local_334;
          do {
            puVar17 = puVar19;
            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;
            uVar21 = uVar24 & 0x80808080;
            puVar19 = puVar17 + 1;
          } while (uVar21 == 0);
          bVar35 = (uVar24 & 0x8080) == 0;
          if (bVar35) {
            uVar21 = uVar21 >> 0x10;
          }
          if (bVar35) {
            puVar19 = (uint *)((int)puVar17 + 6);
          }
          pcVar12 = (char *)((int)puVar19 +
                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));
        }
        if (group_width < (int)pcVar12) {
          group_width = (int)pcVar12;
        }
      }
      if (print_author != false) {
        uVar4 = (local_330->stat).st_uid;
        *(undefined4 *)(puVar26 + -4) = 0x18dfe;
        iVar10 = format_user_width(uVar4);
        if (author_width < iVar10) {
          author_width = iVar10;
        }
      }
      if (print_scontext != false) goto LAB_0001855f;
LAB_0001857f:
      if (format != long_format) goto LAB_000182ec;
      *(char **)(puVar26 + -8) = b;
      _Var3 = (local_330->stat).st_nlink;
      *(undefined4 *)(puVar26 + -0xc) = 0;
      *(__nlink_t *)(puVar26 + -0x10) = _Var3;
      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;
      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));
      *(char **)(puVar26 + -0x10) = pcVar12;
      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;
      sVar13 = strlen(*(char **)(puVar26 + -0x10));
      if (nlink_width < (int)sVar13) {
        nlink_width = sVar13;
      }
      local_334 = (uint *)(local_330->stat).st_mode;
      if (((uint)local_334 & 0xb000) == 0x2000) {
        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);
        uVar24 = (uint)(local_330->stat).st_rdev;
        *(char **)(puVar26 + -8) = buf;
        local_344 = uVar24;
        local_340 = uVar21;
        local_334 = (uint *)buf;
        *(undefined4 *)(puVar26 + -0xc) = 0;
        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;
        *(undefined4 *)(puVar26 + -0x14) = 0x18623;
        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));
        *(char **)(puVar26 + -0x10) = pcVar12;
        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;
        sVar13 = strlen(*(char **)(puVar26 + -0x10));
        if (major_device_number_width < (int)sVar13) {
          major_device_number_width = sVar13;
        }
        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);
        uVar21 = (uint)(local_330->stat).st_rdev;
        *(uint **)(puVar26 + -8) = local_334;
        *(undefined4 *)(puVar26 + -0xc) = 0;
        *(uint *)(puVar26 + -0x10) =
             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |
             uVar21 & 0xff;
        *(undefined4 *)(puVar26 + -0x14) = 0x18665;
        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));
        *(char **)(puVar26 + -0x10) = pcVar12;
        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;
        sVar13 = strlen(*(char **)(puVar26 + -0x10));
        if (minor_device_number_width < (int)sVar13) {
          minor_device_number_width = sVar13;
        }
        iVar10 = minor_device_number_width + 2 + major_device_number_width;
        if (iVar10 <= file_size_width) goto LAB_000182ec;
      }
      else {
        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;
        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;
        *(undefined4 *)(puVar26 + -0xc) = 0;
        *(undefined4 *)(puVar26 + -0x10) = 1;
        *(int *)(puVar26 + -0x14) = file_human_output_opts;
        *(char **)(puVar26 + -0x18) = buf;
        pfVar8 = local_330;
        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);
        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;
        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;
        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),
                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),
                                 *(uintmax_t *)(puVar26 + -8));
        *(undefined4 *)(puVar26 + -0xc) = 0;
        *(char **)(puVar26 + -0x10) = pcVar12;
        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;
        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));
        if (iVar10 <= file_size_width) goto LAB_000182ec;
      }
    }
    else {
LAB_000182df:
      if (print_scontext != false) {
LAB_0001855f:
        *(char **)(puVar26 + -0x10) = local_330->scontext;
        *(undefined4 *)(puVar26 + -0x14) = 0x18570;
        sVar13 = strlen(*(char **)(puVar26 + -0x10));
        if (scontext_width < (int)sVar13) {
          scontext_width = sVar13;
        }
        goto LAB_0001857f;
      }
LAB_000182ec:
      iVar10 = file_size_width;
    }
    file_size_width = iVar10;
    if (print_inode != false) {
      *(char **)(puVar26 + -8) = buf;
      pfVar8 = local_330;
      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);
      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;
      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;
      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));
      *(char **)(puVar26 + -0x10) = pcVar12;
      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;
      sVar13 = strlen(*(char **)(puVar26 + -0x10));
      if (inode_number_width < (int)sVar13) {
        inode_number_width = sVar13;
      }
    }
  }
LAB_000182fb:
  *(uint **)(puVar26 + -0x10) = local_338;
  *(undefined4 *)(puVar26 + -0x14) = 0x18309;
  pcVar12 = xstrdup(*(char **)(puVar26 + -0x10));
  cwd_n_used = cwd_n_used + 1;
  local_330->name = pcVar12;
LAB_0001831b:
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(uVar33,uVar28);
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar26 + -4) = 0x19152;
  __stack_chk_fail_local();
}



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

undefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)

{
  char cVar1;
  char cVar2;
  char cVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  undefined4 uVar7;
  size_t sVar8;
  char *pcVar9;
  size_t sVar10;
  uint *puVar11;
  int *piVar12;
  int iVar13;
  uint *puVar14;
  char *pcVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *pbVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  byte *pbVar25;
  int in_GS_OFFSET;
  bool bVar26;
  bool bVar27;
  byte bVar28;
  undefined1 auStack_35c [11];
  char local_351;
  uint *local_350;
  uint local_34c;
  char *local_348;
  uint local_344;
  uint local_340;
  uint local_33c;
  uint *local_338;
  uint *local_334;
  undefined4 *local_330;
  undefined1 local_324 [16];
  uint local_314;
  undefined1 local_2c1 [21];
  uint local_2ac [163];
  int local_20;
  undefined4 uStack_14;
  
  bVar28 = 0;
  uStack_14 = 0x1809b;
  local_338 = param_1;
  local_344 = param_3;
  local_33c = param_2;
  local_348 = param_4;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_0003c358 == DAT_0003c35c) {
    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||
       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_00024230();
    }
    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);
    DAT_0003c35c = DAT_0003c35c << 1;
  }
  puVar20 = auStack_35c;
  puVar19 = auStack_35c;
  puVar21 = auStack_35c;
  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);
  *local_330 = 0;
  local_330[0x20] = 0;
  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);
  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;
      uVar16 != 0; uVar16 = uVar16 - 1) {
    *puVar23 = 0;
    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;
  }
  local_330[0x19] = 0;
  local_330[0x1a] = 0;
  bVar26 = DAT_0003c355 == '\0';
  local_330[0x21] = 0xffffffff;
  local_330[0x1b] = local_33c;
  if ((bVar26) && (DAT_0003c354 != '\0')) {
    bVar4 = FUN_00014c00();
    local_330[0x21] = (uint)bVar4;
    if (bVar4 != 0) {
      DAT_0003c355 = '\x01';
    }
  }
  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);
  if ((char)local_344 == '\0') {
    if (DAT_0003c2e1 != '\0') {
      cVar5 = (char)*local_338;
      if (cVar5 == '/') {
        local_334 = local_338;
        puVar20 = auStack_35c;
      }
      else {
        cVar3 = *local_348;
        local_334 = local_338;
        puVar20 = auStack_35c;
        if (cVar3 != '\0') goto LAB_00018b15;
      }
      goto LAB_0001896e;
    }
    if ((DAT_0003c2a1 != '\0') ||
       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&
        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||
         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {
LAB_00018410:
      cVar5 = (char)*local_338;
      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;
      local_348 = (char *)(local_330 + 3);
      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {
        local_334 = local_338;
        puVar21 = auStack_35c;
      }
      else {
        local_334 = local_338;
        if (DAT_0003c2d0 == 5) goto LAB_00018210;
      }
      goto LAB_00018470;
    }
    if (DAT_0003c2d4 != '\0') {
      if ((local_33c == 6) || (local_33c == 0)) {
LAB_00018f48:
        if ((DAT_0003c2d0 != 5) &&
           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {
          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;
          if (local_33c != 0) goto LAB_000183a9;
        }
      }
      goto LAB_00018410;
    }
    if (DAT_0003c2a0 == '\0') {
LAB_00018fd0:
      uVar17 = 0;
      uVar24 = 0;
    }
    else {
      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;
      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;
LAB_000183a9:
      uVar17 = 0;
      uVar24 = 0;
      puVar20 = auStack_35c;
      if ((local_33c == 5) &&
         ((DAT_0003c2e4 == 3 ||
          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&
           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||
            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||
             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))
      goto LAB_00018410;
    }
  }
  else {
    cVar5 = (char)*local_338;
    local_334 = local_338;
    puVar20 = auStack_35c;
    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {
LAB_00018b15:
      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);
      local_351 = cVar3;
      sVar8 = strlen((char *)local_338);
      pcVar15 = local_348;
      sVar10 = strlen(local_348);
      cVar5 = local_351;
      cVar3 = (char)local_350;
      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);
      puVar20 = auStack_35c + iVar6;
      local_334 = (uint *)((int)&local_350 + iVar6);
      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {
        local_351 = cVar3;
        pcVar9 = local_348;
        puVar14 = local_334;
        cVar2 = pcVar15[1];
        while( true ) {
          cVar1 = cVar2;
          local_350 = (uint *)((int)puVar14 + 1);
          *(char *)puVar14 = cVar5;
          if (cVar1 == '\0') break;
          pcVar15 = pcVar9 + 2;
          pcVar9 = pcVar9 + 1;
          puVar14 = local_350;
          cVar2 = *pcVar15;
          cVar5 = cVar1;
        }
        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {
          *(char *)local_350 = '/';
          local_350 = (uint *)((int)puVar14 + 2);
        }
      }
      puVar14 = local_338;
      if (cVar3 != '\0') {
        do {
          puVar11 = (uint *)((int)local_350 + 1);
          *(char *)local_350 = cVar3;
          cVar3 = *(char *)((int)puVar14 + 1);
          local_350 = puVar11;
          puVar14 = (uint *)((int)puVar14 + 1);
        } while (cVar3 != '\0');
      }
      *(char *)local_350 = '\0';
    }
    if ((char)local_34c != '\0') {
LAB_0001896e:
      *(undefined4 *)(puVar20 + -0xc) = 2;
      *(uint **)(puVar20 + -0x10) = local_334;
      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;
      iVar6 = FUN_0001b7b0();
      local_330[2] = iVar6;
      if (iVar6 == 0) {
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;
        FUN_00015440();
      }
    }
    uVar16 = DAT_0003c2d0;
    local_348 = (char *)(local_330 + 3);
    puVar21 = puVar20;
    if (DAT_0003c2d0 < 3) goto LAB_00018470;
    if (DAT_0003c2d0 < 5) {
      if ((char)local_344 == '\0') {
LAB_00018470:
        *(char **)(puVar21 + -8) = local_348;
        cVar5 = '\0';
        *(uint **)(puVar21 + -0xc) = local_334;
        *(undefined4 *)(puVar21 + -0x10) = 3;
        *(undefined4 *)(puVar21 + -0x14) = 0x18488;
        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),
                           *(stat64 **)(puVar21 + -8));
        puVar20 = puVar21;
        goto joined_r0x0001848d;
      }
      *(undefined4 **)(puVar20 + -8) = local_330 + 3;
      *(uint **)(puVar20 + -0xc) = local_334;
      *(undefined4 *)(puVar20 + -0x10) = 3;
      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;
      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                        *(stat64 **)(puVar20 + -8));
      if (uVar16 != 3) {
        if (iVar6 < 0) {
          *(undefined4 *)(puVar20 + -4) = 0x18f95;
          piVar12 = __errno_location();
          if (*piVar12 != 2) goto LAB_00018f9e;
        }
        else {
          local_34c = local_330[7];
          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;
        }
        goto LAB_00018470;
      }
LAB_00018a1e:
      if (iVar6 != 0) {
LAB_00018f9e:
        uVar17 = 0;
        uVar24 = 0;
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;
        FUN_00015440();
        goto LAB_0001831b;
      }
      cVar5 = (char)local_344;
    }
    else {
      puVar19 = puVar20;
      if (DAT_0003c2d0 != 5) goto LAB_00018470;
LAB_00018210:
      *(char **)(puVar19 + -8) = local_348;
      cVar5 = '\x01';
      *(uint **)(puVar19 + -0xc) = local_334;
      *(undefined4 *)(puVar19 + -0x10) = 3;
      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;
      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),
                        *(stat64 **)(puVar19 + -8));
      puVar20 = puVar19;
joined_r0x0001848d:
      if (iVar6 != 0) {
        uVar17 = 0;
        uVar24 = 0;
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x184be;
        FUN_00015440();
        if ((char)local_344 != '\0') goto LAB_0001831b;
        goto LAB_000182fb;
      }
    }
    *(undefined1 *)(local_330 + 0x1e) = 1;
    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&
       (DAT_0003c2e2 != '\0')) {
      *(undefined4 *)(puVar20 + -4) = 0x188e7;
      cVar3 = FUN_000146d0();
      if (cVar3 != '\0') {
        iVar6 = local_330[3];
        local_33c = local_330[4];
        *(undefined4 *)(puVar20 + -4) = 0x18906;
        piVar12 = __errno_location();
        uVar16 = DAT_0003b39c;
        iVar13 = DAT_0003b398;
        *piVar12 = 0x5f;
        if (local_33c != uVar16 || iVar13 != iVar6) {
          DAT_0003b39c = local_33c;
          DAT_0003b398 = iVar6;
        }
        *(undefined1 *)(local_330 + 0x20) = 0;
      }
    }
    puVar23 = local_330;
    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {
      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {
        *(undefined4 *)(puVar20 + -4) = 0x18eca;
        piVar12 = __errno_location();
        *piVar12 = 0x5f;
        puVar23[0x1d] = &DAT_0003b1fa;
LAB_00018ee0:
        if (DAT_0003c308 != 0) {
          local_330[0x1f] = 0;
          goto LAB_00018287;
        }
        cVar5 = false;
LAB_00018ca7:
        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {
          *piVar12 = 0x5f;
          uVar16 = 0;
LAB_0001900a:
          uVar17 = 1;
          if ((bool)cVar5 == false) {
            uVar17 = 0;
            cVar5 = DAT_0003c334;
          }
        }
        else {
          *piVar12 = 0;
          *(char **)(puVar20 + -0xc) = local_348;
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;
          uVar16 = FUN_0001c190();
          if ((int)uVar16 < 1) {
            uVar16 = uVar16 >> 0x1f;
            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {
              DAT_0003b388 = local_330[3];
              DAT_0003b38c = local_330[4];
            }
            goto LAB_0001900a;
          }
          uVar16 = 0;
          uVar17 = 2;
          cVar5 = '\x01';
        }
        DAT_0003c334 = cVar5;
        local_330[0x1f] = uVar17;
        if (uVar16 != 0) {
LAB_00018ac2:
          *(uint **)(puVar20 + -8) = local_334;
          *(undefined4 *)(puVar20 + -0xc) = 3;
          *(undefined4 *)(puVar20 + -0x10) = 0;
          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;
          uVar17 = FUN_000234e0();
          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;
          piVar12 = __errno_location();
          *(undefined4 *)(puVar20 + -0x14) = uVar17;
          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;
          *(int *)(puVar20 + -0x1c) = *piVar12;
          *(undefined4 *)(puVar20 + -0x20) = 0;
          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;
          error();
        }
      }
      else {
        if (cVar5 != '\0') {
          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x18732;
          iVar6 = FUN_00028250();
          if (-1 < iVar6) goto LAB_0001873d;
LAB_00018a52:
          *(undefined4 *)(puVar20 + -4) = 0x18a57;
          piVar12 = __errno_location();
          iVar6 = *piVar12;
          bVar26 = iVar6 == 0x5f;
          local_33c = CONCAT31(local_33c._1_3_,bVar26);
          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {
            DAT_0003b394 = local_330[4];
            DAT_0003b390 = local_330[3];
          }
          local_330[0x1d] = &DAT_0003b1fa;
          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;
          local_330[0x1f] = 0;
          goto LAB_00018ac2;
        }
        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;
        *(uint **)(puVar20 + -0x10) = local_334;
        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;
        iVar6 = FUN_00028280();
        if (iVar6 < 0) goto LAB_00018a52;
LAB_0001873d:
        bVar27 = iVar6 == 0;
        bVar26 = false;
        iVar6 = 10;
        pbVar22 = (byte *)"unlabeled";
        pbVar25 = (byte *)local_330[0x1d];
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          bVar26 = *pbVar22 < *pbVar25;
          bVar27 = *pbVar22 == *pbVar25;
          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;
        } while (bVar27);
        cVar5 = (!bVar26 && !bVar27) != bVar26;
        if (DAT_0003c308 == 0) {
          *(undefined4 *)(puVar20 + -4) = 0x18ca5;
          piVar12 = __errno_location();
          goto LAB_00018ca7;
        }
        if ((!bVar26 && !bVar27) == bVar26) {
          local_330[0x1f] = 0;
          goto LAB_00018287;
        }
        local_330[0x1f] = 1;
        DAT_0003c334 = '\x01';
      }
      local_33c = local_330[7];
      uVar16 = local_330[7] & 0xf000;
      if (uVar16 != 0xa000) goto LAB_000182a0;
      if (DAT_0003c308 != 0) goto LAB_00018da0;
LAB_000187b9:
      puVar23 = local_330;
      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];
      *(uint **)(puVar20 + -0x10) = local_334;
      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;
      pcVar15 = (char *)FUN_0001b280();
      puVar23[1] = pcVar15;
      if (pcVar15 == (char *)0x0) {
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x19043;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x19059;
        FUN_00015440();
        pcVar15 = (char *)local_330[1];
        if (pcVar15 != (char *)0x0) goto LAB_000187e0;
LAB_0001906d:
        iVar6 = 0;
      }
      else {
LAB_000187e0:
        if (*pcVar15 == '/') {
LAB_00018f18:
          *(char **)(puVar20 + -0x10) = pcVar15;
          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;
          iVar6 = FUN_00024200();
        }
        else {
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;
          uVar16 = FUN_0001c010();
          if (uVar16 == 0) goto LAB_00018f18;
          local_33c = uVar16;
          *(char **)(puVar20 + -0x10) = pcVar15;
          *(undefined4 *)(puVar20 + -0x14) = 0x18811;
          sVar8 = strlen(*(char **)(puVar20 + -0x10));
          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;
          *(undefined4 *)(puVar20 + -0x14) = 0x18823;
          iVar6 = FUN_00023f30();
          uVar16 = local_33c;
          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {
            uVar16 = local_33c + 1;
          }
          *(uint *)(puVar20 + -8) = uVar16;
          *(uint **)(puVar20 + -0xc) = local_334;
          *(int *)(puVar20 + -0x10) = iVar6;
          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;
          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                           *(size_t *)(puVar20 + -8));
          *(char **)(puVar20 + -0xc) = pcVar15;
          *(char **)(puVar20 + -0x10) = pcVar9;
          *(undefined4 *)(puVar20 + -0x14) = 0x18857;
          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));
        }
        puVar23 = local_330;
        if (iVar6 == 0) goto LAB_0001906d;
        if (local_330[0x21] == 0) {
          *(undefined4 *)(puVar20 + -4) = 0x1911a;
          cVar5 = FUN_00014c00();
          if (cVar5 != '\0') {
            puVar23[0x21] = 0xffffffff;
          }
        }
        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {
          *(undefined1 **)(puVar20 + -8) = local_324;
          *(int *)(puVar20 + -0xc) = iVar6;
          *(undefined4 *)(puVar20 + -0x10) = 3;
          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;
          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                             *(stat64 **)(puVar20 + -8));
          if (iVar13 == 0) {
            *(undefined1 *)((int)local_330 + 0x79) = 1;
            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||
               ((local_314 & 0xf000) != 0x4000)) {
              local_330[0x1c] = local_314;
            }
          }
        }
      }
      *(int *)(puVar20 + -0x10) = iVar6;
      *(undefined4 *)(puVar20 + -0x14) = 0x18899;
      free(*(void **)(puVar20 + -0x10));
      local_334 = (uint *)local_330[7];
      uVar16 = (uint)local_330[7] & 0xf000;
      if (uVar16 != 0xa000) goto LAB_000182a0;
LAB_000188bb:
      local_330[0x1b] = 6;
    }
    else {
LAB_00018287:
      local_33c = local_330[7];
      uVar16 = local_330[7] & 0xf000;
      if (uVar16 == 0xa000) {
LAB_00018da0:
        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;
        goto LAB_000188bb;
      }
LAB_000182a0:
      if (uVar16 == 0x4000) {
        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {
          local_330[0x1b] = 3;
        }
        else {
          local_330[0x1b] = 9;
        }
      }
      else {
        local_330[0x1b] = 5;
      }
    }
    uVar17 = local_330[0x11];
    uVar24 = local_330[0x12];
    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {
      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;
      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = 0x200;
      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;
      *(uint **)(puVar20 + -0x18) = local_2ac;
      *(undefined4 *)(puVar20 + -0x1c) = uVar24;
      *(undefined4 *)(puVar20 + -0x20) = uVar17;
      local_334 = local_2ac;
      *(undefined4 *)(puVar20 + -0x24) = 0x18505;
      uVar7 = FUN_0001df30();
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x18510;
      iVar6 = FUN_0001fb50();
      if (DAT_0003c32c < iVar6) {
        DAT_0003c32c = iVar6;
      }
      if (DAT_0003c308 != 0) goto LAB_000182df;
      if (DAT_0003b1f9 != '\0') {
        *(undefined4 *)(puVar20 + -4) = 0x18eae;
        iVar6 = FUN_00018000();
        if (DAT_0003c320 < iVar6) {
          DAT_0003c320 = iVar6;
        }
      }
      if (DAT_0003b1f8 != '\0') {
        uVar16 = local_330[10];
        if (DAT_0003c2fd == '\0') {
          local_344 = uVar16;
          *(uint *)(puVar20 + -0x10) = uVar16;
          *(undefined4 *)(puVar20 + -0x14) = 0x190df;
          iVar6 = FUN_0001f1e0();
          uVar16 = local_344;
          if (iVar6 == 0) goto LAB_00018e2e;
          *(undefined4 *)(puVar20 + -0xc) = 0;
          *(int *)(puVar20 + -0x10) = iVar6;
          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;
          pcVar15 = (char *)FUN_0001fb50();
          if ((int)pcVar15 < 0) {
            pcVar15 = (char *)0x0;
          }
        }
        else {
LAB_00018e2e:
          *(uint *)(puVar20 + -0x10) = uVar16;
          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;
          *(undefined4 *)(puVar20 + -0x18) = 0xb;
          *(undefined4 *)(puVar20 + -0x1c) = 1;
          *(uint **)(puVar20 + -0x20) = local_334;
          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;
          __sprintf_chk();
          puVar14 = local_334;
          do {
            puVar11 = puVar14;
            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;
            uVar16 = uVar18 & 0x80808080;
            puVar14 = puVar11 + 1;
          } while (uVar16 == 0);
          bVar26 = (uVar18 & 0x8080) == 0;
          if (bVar26) {
            uVar16 = uVar16 >> 0x10;
          }
          if (bVar26) {
            puVar14 = (uint *)((int)puVar11 + 6);
          }
          pcVar15 = (char *)((int)puVar14 +
                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));
        }
        if ((int)DAT_0003c31c < (int)pcVar15) {
          DAT_0003c31c = pcVar15;
        }
      }
      if (DAT_0003c2fe != '\0') {
        *(undefined4 *)(puVar20 + -4) = 0x18dfe;
        iVar6 = FUN_00018000();
        if (DAT_0003c318 < iVar6) {
          DAT_0003c318 = iVar6;
        }
      }
      if (DAT_0003c335 != '\0') goto LAB_0001855f;
LAB_0001857f:
      if (DAT_0003c308 != 0) goto LAB_000182ec;
      *(undefined1 **)(puVar20 + -8) = local_2c1;
      uVar7 = local_330[8];
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;
      uVar7 = FUN_0001f470();
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;
      sVar8 = strlen(*(char **)(puVar20 + -0x10));
      if ((int)DAT_0003c328 < (int)sVar8) {
        DAT_0003c328 = sVar8;
      }
      local_334 = (uint *)local_330[7];
      if (((uint)local_334 & 0xb000) == 0x2000) {
        uVar16 = local_330[0xc];
        uVar18 = local_330[0xb];
        *(uint **)(puVar20 + -8) = local_2ac;
        local_344 = uVar18;
        local_340 = uVar16;
        local_334 = local_2ac;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;
        *(undefined4 *)(puVar20 + -0x14) = 0x18623;
        uVar7 = FUN_0001f470();
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c314 < (int)sVar8) {
          DAT_0003c314 = sVar8;
        }
        iVar6 = local_330[0xc];
        uVar16 = local_330[0xb];
        *(uint **)(puVar20 + -8) = local_334;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(uint *)(puVar20 + -0x10) =
             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |
             uVar16 & 0xff;
        *(undefined4 *)(puVar20 + -0x14) = 0x18665;
        uVar7 = FUN_0001f470();
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c310 < (int)sVar8) {
          DAT_0003c310 = sVar8;
        }
        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;
        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;
      }
      else {
        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;
        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(undefined4 *)(puVar20 + -0x10) = 1;
        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;
        *(uint **)(puVar20 + -0x18) = local_2ac;
        puVar23 = local_330;
        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];
        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];
        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;
        uVar7 = FUN_0001df30();
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;
        iVar6 = FUN_0001fb50();
        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;
      }
    }
    else {
LAB_000182df:
      if (DAT_0003c335 != '\0') {
LAB_0001855f:
        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];
        *(undefined4 *)(puVar20 + -0x14) = 0x18570;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c324 < (int)sVar8) {
          DAT_0003c324 = sVar8;
        }
        goto LAB_0001857f;
      }
LAB_000182ec:
      iVar6 = DAT_0003c30c;
    }
    DAT_0003c30c = iVar6;
    if (DAT_0003c2d4 != '\0') {
      *(uint **)(puVar20 + -8) = local_2ac;
      puVar23 = local_330;
      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];
      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];
      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;
      uVar7 = FUN_0001f470();
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;
      sVar8 = strlen(*(char **)(puVar20 + -0x10));
      if ((int)DAT_0003c330 < (int)sVar8) {
        DAT_0003c330 = sVar8;
      }
    }
  }
LAB_000182fb:
  *(uint **)(puVar20 + -0x10) = local_338;
  *(undefined4 *)(puVar20 + -0x14) = 0x18309;
  uVar7 = FUN_00024200();
  DAT_0003c358 = DAT_0003c358 + 1;
  *local_330 = uVar7;
LAB_0001831b:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(uVar24,uVar17);
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar20 + -4) = 0x19152;
  FUN_0002b190();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014250
ADD EBX,0x22f65
SUB ESP,0x34c
MOV dword ptr [EBP + 0xfffffccc],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xfffffcc0],ECX
MOV dword ptr [EBP + 0xfffffcc8],EDX
MOV dword ptr [EBP + 0xfffffcbc],EAX
MOV ESI,dword ptr [EBX + 0x1358]
MOV ECX,dword ptr [EBX + 0x1360]
MOV EAX,GS:[0x14]
MOV dword ptr [EBP + -0x1c],EAX
XOR EAX,EAX
CMP ESI,dword ptr [EBX + 0x135c]
JNZ 0x00018127
MOV EDX,0x110
MOV EAX,EDX
MUL ESI
SETO DL
MOVZX EDX,DL
TEST EAX,EAX
JS 0x00019152
TEST EDX,EDX
JNZ 0x00019152
IMUL ESI,ESI,0x110
SUB ESP,0x8
PUSH ESI
PUSH ECX
CALL 0x00023fc0
MOV ESI,dword ptr [EBX + 0x1358]
SHL dword ptr [EBX + 0x135c],0x1
ADD ESP,0x10
MOV dword ptr [EBX + 0x1360],EAX
MOV ECX,EAX
IMUL ESI,ESI,0x88
XOR EAX,EAX
LEA EDX,[ECX + ESI*0x1]
LEA EDI,[EDX + 0x4]
MOV ECX,EDX
MOV dword ptr [EBP + 0xfffffcd4],EDX
AND EDI,0xfffffffc
MOV dword ptr [EDX],0x0
MOV dword ptr [EDX + 0x80],0x0
SUB ECX,EDI
ADD ECX,0x84
SHR ECX,0x2
STOSD.REP ES:EDI
MOV dword ptr [EDX + 0x64],0x0
MOV dword ptr [EDX + 0x68],0x0
MOV EAX,dword ptr [EBP + 0xfffffcc8]
CMP byte ptr [EBX + 0x1355],0x0
MOV dword ptr [EDX + 0x84],0xffffffff
MOV dword ptr [EDX + 0x6c],EAX
JNZ 0x00018194
CMP byte ptr [EBX + 0x1354],0x0
JNZ 0x00018c08
MOVZX EAX,byte ptr [EBX + 0x12e1]
CMP byte ptr [EBP + 0xfffffcc0],0x0
MOV byte ptr [EBP + 0xfffffcb8],AL
JZ 0x00018340
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOVZX ECX,byte ptr [EAX]
MOV dword ptr [EBP + 0xfffffcd0],EAX
CMP CL,0x2f
JZ 0x000181d3
MOV EDI,dword ptr [EBP + 0xfffffcbc]
MOVZX EDX,byte ptr [EDI]
TEST DL,DL
JNZ 0x00018b15
CMP byte ptr [EBP + 0xfffffcb8],0x0
JNZ 0x0001896e
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV ESI,dword ptr [EBX + 0x12d0]
ADD EAX,0xc
MOV dword ptr [EBP + 0xfffffcbc],EAX
CMP ESI,0x3
JC 0x00018470
CMP ESI,0x4
JBE 0x000189c8
CMP ESI,0x5
JNZ 0x00018470
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffcbc]
MOV ESI,0x1
PUSH dword ptr [EBP + 0xfffffcd0]
PUSH 0x3
CALL 0x000126b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018493
MOV EAX,dword ptr [EBP + 0xfffffcd4]
CMP dword ptr [EBP + 0xfffffcc8],0x5
MOV byte ptr [EAX + 0x78],0x1
JZ 0x000188d0
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + 0xfffffcc8],EAX
AND EAX,0xf000
CMP EAX,0x8000
JZ 0x000188d0
MOV EDI,dword ptr [EBX + 0x1308]
TEST EDI,EDI
JZ 0x000186f0
CMP byte ptr [EBX + 0x1335],0x0
JNZ 0x000186f0
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + 0xfffffcc8],EAX
AND EAX,0xf000
CMP EAX,0xa000
JZ 0x00018da0
CMP EAX,0x4000
MOV EAX,dword ptr [EBP + 0xfffffcd4]
JZ 0x00018db8
MOV dword ptr [EAX + 0x6c],0x5
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV ESI,dword ptr [EAX + 0x44]
MOV EDI,dword ptr [EAX + 0x48]
MOV EAX,dword ptr [EBX + 0x1308]
TEST EAX,EAX
JZ 0x000184d8
CMP byte ptr [EBX + 0x12fc],0x0
JNZ 0x000184d8
CMP byte ptr [EBX + 0x1335],0x0
JNZ 0x0001855f
MOVZX EAX,byte ptr [EBX + 0x12d4]
TEST AL,AL
JNZ 0x000186b0
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffccc]
CALL 0x00024200
MOV ECX,dword ptr [EBP + 0xfffffcd4]
ADD dword ptr [EBX + 0x1358],0x1
ADD ESP,0x10
MOV dword ptr [ECX],EAX
MOV EDX,EDI
MOV EAX,ESI
MOV EDI,dword ptr [EBP + -0x1c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x0001914d
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST AL,AL
JNZ 0x00018950
CMP byte ptr [EBX + 0x12a1],0x0
JNZ 0x00018410
CMP dword ptr [EBP + 0xfffffcc8],0x3
JZ 0x00019088
MOVZX EAX,byte ptr [EBX + 0x12d4]
TEST AL,AL
JNZ 0x00018f30
CMP byte ptr [EBX + 0x12a0],0x0
JZ 0x00018fd0
MOV EDI,dword ptr [EBP + 0xfffffcc8]
TEST EDI,EDI
SETZ CL
MOV EDX,ECX
CMP EDI,0x6
JZ 0x00018f48
TEST CL,CL
JNZ 0x00018f48
CMP byte ptr [EBX + 0x12a0],0x0
JZ 0x00018fd0
XOR ESI,ESI
XOR EDI,EDI
CMP dword ptr [EBP + 0xfffffcc8],0x5
JNZ 0x000182fb
CMP dword ptr [EBX + 0x12e4],0x3
JZ 0x00018410
CMP byte ptr [EBX + 0x12e2],0x0
JZ 0x000182fb
MOV EAX,0xe
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
MOV EAX,0x10
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
MOV EAX,0x11
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
MOV EAX,0x15
CALL 0x000146d0
TEST AL,AL
JZ 0x000182fb
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOVZX ECX,byte ptr [EAX]
CMP CL,0x2f
JZ 0x0001842f
MOV EAX,dword ptr [EBP + 0xfffffcbc]
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JNZ 0x00018b15
MOV EDI,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EBX + 0x12d0]
ADD EDI,0xc
MOV dword ptr [EBP + 0xfffffcbc],EDI
CMP EAX,0x3
JC 0x00018f00
CMP EAX,0x4
JBE 0x00018f00
MOV EDI,dword ptr [EBP + 0xfffffccc]
MOV dword ptr [EBP + 0xfffffcd0],EDI
CMP EAX,0x5
JZ 0x00018210
LEA ESI,[ESI]
NOP
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffcbc]
XOR ESI,ESI
PUSH dword ptr [EBP + 0xfffffcd0]
PUSH 0x3
CALL 0x000126c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018236
SUB ESP,0x4
LEA EAX,[EBX + 0xffff29d4]
XOR ESI,ESI
XOR EDI,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121e0
MOV ECX,dword ptr [EBP + 0xfffffcd0]
MOV EDX,EAX
MOVZX EAX,byte ptr [EBP + 0xfffffcc0]
CALL 0x00015440
ADD ESP,0x10
CMP byte ptr [EBP + 0xfffffcc0],0x0
JNZ 0x0001831b
JMP 0x000182fb
LEA EAX,[EBP + 0xfffffd58]
PUSH dword ptr [EBX + 0x12f4]
PUSH dword ptr [EBX + 0x12f0]
PUSH 0x0
PUSH 0x200
PUSH dword ptr [EBX + 0x12f8]
PUSH EAX
PUSH EDI
PUSH ESI
MOV dword ptr [EBP + 0xfffffcd0],EAX
CALL 0x0001df30
ADD ESP,0x18
PUSH 0x0
PUSH EAX
CALL 0x0001fb50
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x132c]
JLE 0x00018521
MOV dword ptr [EBX + 0x132c],EAX
MOV EAX,dword ptr [EBX + 0x1308]
TEST EAX,EAX
JNZ 0x000182df
CMP byte ptr [EBX + 0x1f9],0x0
JNZ 0x00018ea0
CMP byte ptr [EBX + 0x1f8],0x0
JNZ 0x00018e18
CMP byte ptr [EBX + 0x12fe],0x0
JNZ 0x00018df0
CMP byte ptr [EBX + 0x1335],0x0
JZ 0x0001857f
MOV EAX,dword ptr [EBP + 0xfffffcd4]
SUB ESP,0xc
PUSH dword ptr [EAX + 0x74]
CALL 0x00012420
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x1324]
JG 0x00018c40
MOV EAX,dword ptr [EBX + 0x1308]
TEST EAX,EAX
JNZ 0x000182ec
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffd43]
XOR EDX,EDX
PUSH EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EAX + 0x20]
PUSH EDX
PUSH EAX
CALL 0x0001f470
MOV dword ptr [ESP],EAX
CALL 0x00012420
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x1328]
JLE 0x000185c2
MOV dword ptr [EBX + 0x1328],EAX
MOV ECX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [ECX + 0x1c]
MOV dword ptr [EBP + 0xfffffcd0],EAX
AND EAX,0xb000
CMP EAX,0x2000
JNZ 0x00018c50
MOV EDX,dword ptr [ECX + 0x30]
MOV EAX,dword ptr [ECX + 0x2c]
SUB ESP,0x4
LEA ECX,[EBP + 0xfffffd58]
PUSH ECX
MOV dword ptr [EBP + 0xfffffcc0],EAX
SHRD EAX,EDX,0x8
MOV dword ptr [EBP + 0xfffffcc4],EDX
MOV EDX,dword ptr [EBP + 0xfffffcc4]
AND EAX,0xfff
MOV dword ptr [EBP + 0xfffffcd0],ECX
AND EDX,0xfffff000
OR EAX,EDX
XOR EDX,EDX
PUSH EDX
PUSH EAX
CALL 0x0001f470
MOV dword ptr [ESP],EAX
CALL 0x00012420
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x1314]
JLE 0x0001863c
MOV dword ptr [EBX + 0x1314],EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
SUB ESP,0x4
MOV EDX,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EAX + 0x2c]
PUSH dword ptr [EBP + 0xfffffcd0]
MOVZX ECX,AL
SHRD EAX,EDX,0xc
XOR EDX,EDX
XOR AL,AL
PUSH EDX
OR EAX,ECX
PUSH EAX
CALL 0x0001f470
MOV dword ptr [ESP],EAX
CALL 0x00012420
MOV EDX,dword ptr [EBX + 0x1310]
ADD ESP,0x10
CMP EAX,EDX
JLE 0x00018682
MOV dword ptr [EBX + 0x1310],EAX
MOV EDX,EAX
MOV EAX,dword ptr [EBX + 0x1314]
LEA EAX,[EDX + EAX*0x1 + 0x2]
CMP EAX,dword ptr [EBX + 0x130c]
JLE 0x000182ec
MOV dword ptr [EBX + 0x130c],EAX
MOVZX EAX,byte ptr [EBX + 0x12d4]
TEST AL,AL
JZ 0x000182fb
LEA ESI,[ESI]
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffd58]
PUSH EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
PUSH dword ptr [EAX + 0x68]
PUSH dword ptr [EAX + 0x64]
CALL 0x0001f470
MOV dword ptr [ESP],EAX
CALL 0x00012420
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x1330]
JLE 0x000182fb
MOV dword ptr [EBX + 0x1330],EAX
JMP 0x000182fb
MOV EDI,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EDI + 0xc]
MOV EDX,dword ptr [EDI + 0x10]
XOR EAX,dword ptr [EBX + 0x390]
XOR EDX,dword ptr [EBX + 0x394]
OR EDX,EAX
JZ 0x00018ec5
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EDX,ESI
ADD EAX,0x74
TEST DL,DL
JZ 0x00018a38
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x00028250
ADD ESP,0x10
TEST EAX,EAX
JS 0x00018a52
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV ECX,0xa
LEA ESI,[EBX + 0xffff2a02]
MOV EDI,dword ptr [EAX + 0x74]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
MOVSX EAX,AL
TEST EAX,EAX
SETNZ DL
MOV EDI,EDX
MOV EDX,dword ptr [EBX + 0x1308]
TEST EDX,EDX
JZ 0x00018ca0
TEST EAX,EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
JZ 0x00019078
MOV dword ptr [EAX + 0x7c],0x1
MOV byte ptr [EBX + 0x1334],0x1
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + 0xfffffcc8],EAX
AND EAX,0xf000
CMP EAX,0xa000
JNZ 0x000182a0
MOV ESI,dword ptr [EBX + 0x1308]
TEST ESI,ESI
JNZ 0x00018da0
MOV EDI,dword ptr [EBP + 0xfffffcd4]
SUB ESP,0x8
PUSH dword ptr [EDI + 0x38]
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x0001b280
ADD ESP,0x10
MOV ESI,EAX
MOV dword ptr [EDI + 0x4],EAX
TEST EAX,EAX
JZ 0x00019030
CMP byte ptr [ESI],0x2f
JZ 0x00018f18
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x0001c010
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018f18
SUB ESP,0xc
MOV dword ptr [EBP + 0xfffffcc8],EAX
PUSH ESI
CALL 0x00012420
MOV EDX,dword ptr [EBP + 0xfffffcc8]
LEA EAX,[EDX + EAX*0x1 + 0x2]
MOV dword ptr [ESP],EAX
CALL 0x00023f30
MOV EDX,dword ptr [EBP + 0xfffffcc8]
ADD ESP,0x10
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0xfffffcd0]
CMP byte ptr [EAX + EDX*0x1 + -0x1],0x2f
JZ 0x0001883e
ADD EDX,0x1
SUB ESP,0x4
PUSH EDX
PUSH dword ptr [EBP + 0xfffffcd0]
PUSH EDI
CALL 0x000124e0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000122f0
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0001906d
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV ECX,dword ptr [EAX + 0x84]
TEST ECX,ECX
JZ 0x00019110
CMP dword ptr [EBX + 0x12e4],0x1
JA 0x00018d38
CMP byte ptr [EBX + 0x12d5],0x0
JNZ 0x00018d38
SUB ESP,0xc
PUSH EDI
CALL 0x00012790
MOV EAX,dword ptr [EBP + 0xfffffcd4]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + 0xfffffcd0],EAX
AND EAX,0xf000
CMP EAX,0xa000
JNZ 0x000182a0
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV dword ptr [EAX + 0x6c],0x6
JMP 0x000182b8
CMP byte ptr [EBX + 0x12e2],0x0
JZ 0x00018266
MOV EAX,0x15
CALL 0x000146d0
TEST AL,AL
JZ 0x00018266
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EDI,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xfffffcc8],EAX
CALL 0x000124a0
MOV EDX,dword ptr [EBX + 0x398]
MOV ECX,dword ptr [EBP + 0xfffffcc8]
XOR ECX,dword ptr [EBX + 0x39c]
MOV dword ptr [EAX],0x5f
XOR EDX,EDI
OR ECX,EDX
JZ 0x00018936
MOV EAX,dword ptr [EBP + 0xfffffcc8]
MOV dword ptr [EBX + 0x398],EDI
MOV dword ptr [EBX + 0x39c],EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV byte ptr [EAX + 0x80],0x0
JMP 0x00018266
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOVZX ECX,byte ptr [EAX]
CMP CL,0x2f
JNZ 0x00018af8
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOV dword ptr [EBP + 0xfffffcd0],EAX
SUB ESP,0x8
PUSH 0x2
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x0001b7b0
MOV EDI,dword ptr [EBP + 0xfffffcd4]
ADD ESP,0x10
MOV dword ptr [EDI + 0x8],EAX
TEST EAX,EAX
JNZ 0x000181e0
SUB ESP,0x4
LEA EAX,[EBX + 0xffff29bc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121e0
MOVZX ESI,byte ptr [EBP + 0xfffffcc0]
MOV ECX,dword ptr [EBP + 0xfffffcd0]
MOV EDX,EAX
MOV EAX,ESI
CALL 0x00015440
ADD ESP,0x10
JMP 0x000181e0
CMP byte ptr [EBP + 0xfffffcc0],0x0
JZ 0x00018470
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffcbc]
PUSH dword ptr [EBP + 0xfffffcd0]
PUSH 0x3
CALL 0x000126b0
ADD ESP,0x10
CMP ESI,0x3
JZ 0x00018a1e
TEST EAX,EAX
JS 0x00018f90
MOV EDI,dword ptr [EBP + 0xfffffcd4]
MOV EDI,dword ptr [EDI + 0x1c]
MOV EDX,EDI
MOV dword ptr [EBP + 0xfffffcb8],EDI
AND EDX,0xf000
CMP EDX,0x4000
JNZ 0x00018470
TEST EAX,EAX
JNZ 0x00018f9e
MOVZX ESI,byte ptr [EBP + 0xfffffcc0]
JMP 0x00018236
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x00028280
ADD ESP,0x10
TEST EAX,EAX
JNS 0x0001873d
CALL 0x000124a0
MOV ECX,dword ptr [EAX]
MOV ESI,EAX
CMP ECX,0x5f
LEA EAX,[ECX + -0x16]
SETZ byte ptr [EBP + 0xfffffcc8]
AND EAX,0xffffffef
MOVZX EDX,byte ptr [EBP + 0xfffffcc8]
JZ 0x00018a78
TEST DL,DL
JZ 0x00018a90
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EDX,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EBX + 0x394],EDX
MOV dword ptr [EBX + 0x390],EAX
MOV EDI,dword ptr [EBP + 0xfffffcd4]
LEA EAX,[EBX + 0x1fa]
MOV dword ptr [EDI + 0x74],EAX
CMP ECX,0x3d
JZ 0x00018ee0
CMP byte ptr [EBP + 0xfffffcc8],0x0
JNZ 0x00018ee0
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV dword ptr [EAX + 0x7c],0x0
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffcd0]
PUSH 0x3
PUSH 0x0
CALL 0x000234e0
MOV ESI,EAX
CALL 0x000124a0
LEA EDX,[EBX + 0xffff4ff0]
PUSH ESI
PUSH EDX
PUSH dword ptr [EAX]
PUSH 0x0
CALL 0x00012350
ADD ESP,0x20
JMP 0x0001878c
MOV EAX,dword ptr [EBP + 0xfffffcbc]
MOVZX EDX,byte ptr [EAX]
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOV dword ptr [EBP + 0xfffffcd0],EAX
TEST DL,DL
JZ 0x0001896e
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffccc]
MOV byte ptr [EBP + 0xfffffcb3],DL
MOV byte ptr [EBP + 0xfffffcb4],CL
CALL 0x00012420
MOV EDI,dword ptr [EBP + 0xfffffcbc]
MOV ESI,EAX
MOV dword ptr [ESP],EDI
CALL 0x00012420
ADD ESP,0x10
MOVZX EDI,byte ptr [EDI + 0x1]
MOVZX EDX,byte ptr [EBP + 0xfffffcb3]
LEA EAX,[ESI + EAX*0x1 + 0x1d]
MOVZX ECX,byte ptr [EBP + 0xfffffcb4]
AND EAX,0xfffffff0
SUB ESP,EAX
LEA ESI,[ESP + 0xf]
AND ESI,0xfffffff0
CMP DL,0x2e
MOV dword ptr [EBP + 0xfffffcd0],ESI
JZ 0x00018d20
MOV EAX,ESI
MOV byte ptr [EBP + 0xfffffcb3],CL
MOV ESI,dword ptr [EBP + 0xfffffcbc]
MOV ECX,EDI
MOV EDI,EAX
JMP 0x00018b98
MOV EDX,ECX
MOVZX ECX,byte ptr [ESI + 0x1]
MOV EDI,EAX
LEA EAX,[EDI + 0x1]
ADD ESI,0x1
MOV byte ptr [EAX + -0x1],DL
TEST CL,CL
JNZ 0x00018b90
MOV dword ptr [EBP + 0xfffffcb4],EAX
MOVZX ECX,byte ptr [EBP + 0xfffffcb3]
CMP dword ptr [EBP + 0xfffffcbc],ESI
JNC 0x00018bcc
CMP byte ptr [ESI + -0x1],0x2f
JZ 0x00018bcc
MOV byte ptr [EAX],0x2f
LEA EAX,[EDI + 0x2]
MOV dword ptr [EBP + 0xfffffcb4],EAX
TEST CL,CL
JZ 0x00018bf6
MOV EDX,dword ptr [EBP + 0xfffffccc]
MOV EAX,dword ptr [EBP + 0xfffffcb4]
LEA ESI,[ESI]
ADD EDX,0x1
ADD EAX,0x1
MOV byte ptr [EAX + -0x1],CL
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JNZ 0x00018be0
MOV dword ptr [EBP + 0xfffffcb4],EAX
MOV EAX,dword ptr [EBP + 0xfffffcb4]
MOV byte ptr [EAX],0x0
JMP 0x000181d3
MOV EAX,dword ptr [EBP + 0xfffffccc]
CALL 0x00014c00
MOV EDI,dword ptr [EBP + 0xfffffcd4]
MOVZX EDX,AL
MOV dword ptr [EDI + 0x84],EDX
TEST AL,AL
JZ 0x00018194
MOV byte ptr [EBX + 0x1355],0x1
JMP 0x00018194
MOV dword ptr [EBX + 0x1324],EAX
JMP 0x0001857f
LEA EAX,[EBP + 0xfffffd58]
PUSH dword ptr [EBX + 0x1f4]
PUSH dword ptr [EBX + 0x1f0]
PUSH 0x0
PUSH 0x1
PUSH dword ptr [EBX + 0x12ec]
PUSH EAX
MOV EAX,dword ptr [EBP + 0xfffffcd4]
PUSH dword ptr [EAX + 0x3c]
PUSH dword ptr [EAX + 0x38]
CALL 0x0001df30
ADD ESP,0x18
PUSH 0x0
PUSH EAX
CALL 0x0001fb50
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x130c]
JLE 0x000182ec
JMP 0x00018698
CALL 0x000124a0
MOV ESI,EAX
MOV ECX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [ECX + 0xc]
MOV ECX,dword ptr [ECX + 0x10]
XOR EAX,dword ptr [EBX + 0x388]
XOR ECX,dword ptr [EBX + 0x38c]
OR ECX,EAX
JZ 0x00019140
SUB ESP,0x8
MOV dword ptr [ESI],0x0
PUSH dword ptr [EBP + 0xfffffcbc]
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x0001c190
ADD ESP,0x10
TEST EAX,EAX
JLE 0x00018fe0
MOV EDI,0x1
XOR EAX,EAX
MOV ECX,0x2
MOV ESI,dword ptr [EBP + 0xfffffcd4]
MOV EDX,EDI
MOV byte ptr [EBX + 0x1334],DL
MOV dword ptr [ESI + 0x7c],ECX
TEST EAX,EAX
JNZ 0x00018ac2
JMP 0x0001878c
MOV EAX,EDI
MOV dword ptr [EBP + 0xfffffcb4],ESI
TEST AL,AL
JZ 0x00018bcc
JMP 0x00018b73
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffce0]
PUSH EAX
PUSH EDI
PUSH 0x3
CALL 0x000126b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018890
MOV EAX,dword ptr [EBP + 0xfffffcd4]
CMP byte ptr [EBP + 0xfffffcc0],0x0
MOV byte ptr [EAX + 0x79],0x1
MOV EAX,dword ptr [EBP + 0xfffffcf0]
JZ 0x00018d90
MOV EDX,dword ptr [EBX + 0x1308]
TEST EDX,EDX
JZ 0x00018d90
MOV EDX,EAX
AND EDX,0xf000
CMP EDX,0x4000
JZ 0x00018890
LEA ESI,[ESI]
MOV ESI,dword ptr [EBP + 0xfffffcd4]
MOV dword ptr [ESI + 0x70],EAX
JMP 0x00018890
CMP byte ptr [EBX + 0x12d5],0x0
JNZ 0x000187b9
JMP 0x000188bb
CMP byte ptr [EBP + 0xfffffcc0],0x0
JZ 0x00018de0
CMP byte ptr [EBX + 0x12cd],0x0
JNZ 0x00018de0
MOV dword ptr [EAX + 0x6c],0x9
JMP 0x000182b8
MOV dword ptr [EAX + 0x6c],0x3
JMP 0x000182b8
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EAX + 0x24]
CALL 0x00018000
CMP EAX,dword ptr [EBX + 0x1318]
JLE 0x00018556
MOV dword ptr [EBX + 0x1318],EAX
JMP 0x00018556
MOV EAX,dword ptr [EBP + 0xfffffcd4]
CMP byte ptr [EBX + 0x12fd],0x0
MOV EDX,dword ptr [EAX + 0x28]
JZ 0x000190d0
SUB ESP,0xc
LEA EAX,[EBX + 0xffff297b]
PUSH EDX
PUSH EAX
PUSH 0xb
PUSH 0x1
PUSH dword ptr [EBP + 0xfffffcd0]
CALL 0x00012770
MOV EAX,dword ptr [EBP + 0xfffffcd0]
MOV ECX,dword ptr [EAX]
ADD EAX,0x4
LEA EDX,[ECX + 0xfefefeff]
NOT ECX
AND EDX,ECX
AND EDX,0x80808080
JZ 0x00018e4e
MOV ECX,EDX
SHR ECX,0x10
TEST EDX,0x8080
CMOVZ EDX,ECX
LEA ECX,[EAX + 0x2]
CMOVZ EAX,ECX
MOV ECX,EDX
ADD CL,DL
SBB EAX,0x3
ADD ESP,0x20
SUB EAX,dword ptr [EBP + 0xfffffcd0]
CMP dword ptr [EBX + 0x131c],EAX
JGE 0x00018549
MOV dword ptr [EBX + 0x131c],EAX
JMP 0x00018549
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV EAX,dword ptr [EAX + 0x24]
CALL 0x00018000
CMP EAX,dword ptr [EBX + 0x1320]
JLE 0x0001853c
MOV dword ptr [EBX + 0x1320],EAX
JMP 0x0001853c
CALL 0x000124a0
MOV dword ptr [EAX],0x5f
MOV ESI,EAX
LEA EAX,[EBX + 0x1fa]
MOV dword ptr [EDI + 0x74],EAX
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [EBX + 0x1308]
TEST ECX,ECX
JZ 0x00019138
MOV EAX,dword ptr [EBP + 0xfffffcd4]
MOV dword ptr [EAX + 0x7c],0x0
JMP 0x00018281
MOV EAX,dword ptr [EBP + 0xfffffccc]
MOV dword ptr [EBP + 0xfffffcd0],EAX
JMP 0x00018470
SUB ESP,0xc
PUSH ESI
CALL 0x00024200
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0001885a
MOV EDI,dword ptr [EBP + 0xfffffcc8]
TEST EDI,EDI
SETZ DL
CMP EDI,0x6
JZ 0x00018f48
TEST DL,DL
JZ 0x00018410
CMP dword ptr [EBX + 0x12d0],0x5
JZ 0x00018410
CMP byte ptr [EBX + 0x1348],0x0
JNZ 0x00018410
CMP byte ptr [EBX + 0x12d5],0x0
JNZ 0x00018410
TEST AL,AL
JNZ 0x00018410
CMP byte ptr [EBX + 0x12a0],0x0
JZ 0x00018fd0
TEST DL,DL
JNZ 0x00018410
JMP 0x000183a9
CALL 0x000124a0
CMP dword ptr [EAX],0x2
JZ 0x00018470
SUB ESP,0x4
LEA EAX,[EBX + 0xffff29d4]
XOR ESI,ESI
XOR EDI,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121e0
MOV ECX,dword ptr [EBP + 0xfffffcd0]
MOV EDX,EAX
MOV EAX,0x1
CALL 0x00015440
ADD ESP,0x10
JMP 0x0001831b
XOR ESI,ESI
XOR EDI,EDI
JMP 0x000182fb
MOV ECX,dword ptr [ESI]
SHR EAX,0x1f
LEA ESI,[ECX + -0x16]
AND ESI,0xffffffef
JZ 0x00018ff2
CMP ECX,0x5f
JNZ 0x0001900a
MOV ESI,dword ptr [EBP + 0xfffffcd4]
MOV EDX,dword ptr [ESI + 0xc]
MOV ECX,dword ptr [ESI + 0x10]
MOV dword ptr [EBX + 0x388],EDX
MOV dword ptr [EBX + 0x38c],ECX
MOV EDX,EDI
MOV ECX,0x1
TEST DL,DL
JNZ 0x00018cf8
MOVZX EDI,byte ptr [EBX + 0x1334]
XOR ECX,ECX
JMP 0x00018cf8
SUB ESP,0x4
LEA EAX,[EBX + 0xffff29e5]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121e0
MOVZX ESI,byte ptr [EBP + 0xfffffcc0]
MOV ECX,dword ptr [EBP + 0xfffffcd0]
MOV EDX,EAX
MOV EAX,ESI
CALL 0x00015440
MOV EAX,dword ptr [EBP + 0xfffffcd4]
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0x4]
TEST ESI,ESI
JNZ 0x000187e0
XOR EDI,EDI
JMP 0x00018890
MOV dword ptr [EAX + 0x7c],0x0
JMP 0x00018287
CMP byte ptr [EBX + 0x12e2],0x0
JZ 0x00018362
MOV EAX,0x13
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
MOV EAX,0x12
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
MOV EAX,0x14
CALL 0x000146d0
TEST AL,AL
JNZ 0x00018410
JMP 0x00018362
SUB ESP,0xc
MOV dword ptr [EBP + 0xfffffcc0],EDX
PUSH EDX
CALL 0x0001f1e0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xfffffcc0]
TEST EAX,EAX
JZ 0x00018e2e
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x0001fb50
ADD ESP,0x10
MOV EDX,0x0
TEST EAX,EAX
CMOVS EAX,EDX
JMP 0x00018e89
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x4]
CALL 0x00014c00
TEST AL,AL
JZ 0x00018876
MOV dword ptr [ESI + 0x84],0xffffffff
JMP 0x00018876
XOR EDI,EDI
JMP 0x00018ca7
MOV dword ptr [ESI],0x5f
XOR EAX,EAX
JMP 0x0001900a
CALL 0x0002b190
CALL 0x00024230
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}\n\n" comment (function_definition "undefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)" identifier (parameter_list "(uint *param_1,uint param_2,uint param_3,char *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "undefined1 auStack_35c [11];" type_identifier (array_declarator "auStack_35c [11]" identifier [ number_literal ]) ;) (declaration "char local_351;" primitive_type identifier ;) (declaration "uint *local_350;" type_identifier (pointer_declarator "*local_350" * identifier) ;) (declaration "uint local_34c;" type_identifier identifier ;) (declaration "char *local_348;" primitive_type (pointer_declarator "*local_348" * identifier) ;) (declaration "uint local_344;" type_identifier identifier ;) (declaration "uint local_340;" type_identifier identifier ;) (declaration "uint local_33c;" type_identifier identifier ;) (declaration "uint *local_338;" type_identifier (pointer_declarator "*local_338" * identifier) ;) (declaration "uint *local_334;" type_identifier (pointer_declarator "*local_334" * identifier) ;) (declaration "undefined4 *local_330;" type_identifier (pointer_declarator "*local_330" * identifier) ;) (declaration "undefined1 local_324 [16];" type_identifier (array_declarator "local_324 [16]" identifier [ number_literal ]) ;) (declaration "uint local_314;" type_identifier identifier ;) (declaration "undefined1 local_2c1 [21];" type_identifier (array_declarator "local_2c1 [21]" identifier [ number_literal ]) ;) (declaration "uint local_2ac [163];" type_identifier (array_declarator "local_2ac [163]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1809b;" (assignment_expression "uStack_14 = 0x1809b" identifier = number_literal) ;) (expression_statement "local_338 = param_1;" (assignment_expression "local_338 = param_1" identifier = identifier) ;) (expression_statement "local_344 = param_3;" (assignment_expression "local_344 = param_3" identifier = identifier) ;) (expression_statement "local_33c = param_2;" (assignment_expression "local_33c = param_2" identifier = identifier) ;) (expression_statement "local_348 = param_4;" (assignment_expression "local_348 = param_4" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" if (parenthesized_expression "(DAT_0003c358 == DAT_0003c35c)" ( (binary_expression "DAT_0003c358 == DAT_0003c35c" identifier == identifier) )) (compound_statement "{\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" { (if_statement "if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }" if (parenthesized_expression "(((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0))" ( (binary_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0)" ( (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110) < 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110)" ( (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) ))) < number_literal) )) || (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" ( (binary_expression "(ulonglong)DAT_0003c358 * 0x110 >> 0x20" (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00024230();\n    }" { comment (expression_statement "FUN_00024230();" (call_expression "FUN_00024230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);" (assignment_expression "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" identifier = (call_expression "FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" identifier (argument_list "(DAT_0003c360,DAT_0003c358 * 0x110)" ( identifier , (binary_expression "DAT_0003c358 * 0x110" identifier * number_literal) )))) ;) (expression_statement "DAT_0003c35c = DAT_0003c35c << 1;" (assignment_expression "DAT_0003c35c = DAT_0003c35c << 1" identifier = (binary_expression "DAT_0003c35c << 1" identifier << number_literal)) ;) })) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar19 = auStack_35c;" (assignment_expression "puVar19 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" identifier = identifier) ;) (expression_statement "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);" (assignment_expression "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" identifier = (cast_expression "(undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0003c360 + DAT_0003c358 * 0x88)" ( (binary_expression "DAT_0003c360 + DAT_0003c358 * 0x88" identifier + (binary_expression "DAT_0003c358 * 0x88" identifier * number_literal)) )))) ;) (expression_statement "*local_330 = 0;" (assignment_expression "*local_330 = 0" (pointer_expression "*local_330" * identifier) = number_literal) ;) (expression_statement "local_330[0x20] = 0;" (assignment_expression "local_330[0x20] = 0" (subscript_expression "local_330[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);" (assignment_expression "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330 + 1)" ( (binary_expression "local_330 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" for ( (assignment_expression "uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" identifier = (binary_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" (call_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" ( (binary_expression "(int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" (cast_expression "(int)local_330" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" ( (binary_expression "0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)" number_literal - (cast_expression "(int)((uint)(local_330 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330 + 1)" ( (binary_expression "local_330 + 1" identifier + number_literal) ))) & number_literal) )))) ))) ))) >> number_literal)) ; (binary_expression "uVar16 != 0" identifier != number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" { (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (expression_statement "puVar23 = puVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "puVar23 = puVar23 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "puVar23 + (uint)bVar28 * -2 + 1" (binary_expression "puVar23 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_330[0x19] = 0;" (assignment_expression "local_330[0x19] = 0" (subscript_expression "local_330[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_330[0x1a] = 0;" (assignment_expression "local_330[0x1a] = 0" (subscript_expression "local_330[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar26 = DAT_0003c355 == '\0';" (assignment_expression "bVar26 = DAT_0003c355 == '\0'" identifier = (binary_expression "DAT_0003c355 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "local_330[0x21] = 0xffffffff;" (assignment_expression "local_330[0x21] = 0xffffffff" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_330[0x1b] = local_33c;" (assignment_expression "local_330[0x1b] = local_33c" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" if (parenthesized_expression "((bVar26) && (DAT_0003c354 != '\0'))" ( (binary_expression "(bVar26) && (DAT_0003c354 != '\0')" (parenthesized_expression "(bVar26)" ( identifier )) && (parenthesized_expression "(DAT_0003c354 != '\0')" ( (binary_expression "DAT_0003c354 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" { (expression_statement "bVar4 = FUN_00014c00();" (assignment_expression "bVar4 = FUN_00014c00()" identifier = (call_expression "FUN_00014c00()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_330[0x21] = (uint)bVar4;" (assignment_expression "local_330[0x21] = (uint)bVar4" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0003c355 = '\x01';\n    }" { (expression_statement "DAT_0003c355 = '\x01';" (assignment_expression "DAT_0003c355 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) })) (expression_statement "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);" (assignment_expression "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1)" identifier = (call_expression "CONCAT31(local_34c._1_3_,DAT_0003c2e1)" identifier (argument_list "(local_34c._1_3_,DAT_0003c2e1)" ( (field_expression "local_34c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }" { (if_statement "if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" if (parenthesized_expression "(DAT_0003c2e1 != '\0')" ( (binary_expression "DAT_0003c2e1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" { (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (if_statement "if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" if (parenthesized_expression "(cVar5 == '/')" ( (binary_expression "cVar5 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" else (compound_statement "{\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" { (expression_statement "cVar3 = *local_348;" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if (cVar3 != '\0') goto LAB_00018b15;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001896e;" goto statement_identifier ;) })) (if_statement "if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" if (parenthesized_expression "((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))))" ( (binary_expression "(DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" (parenthesized_expression "(DAT_0003c2a1 != '\0')" ( (binary_expression "DAT_0003c2a1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" ( (parenthesized_expression "((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))" ( (binary_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" (parenthesized_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0'))" ( (binary_expression "local_33c == 3 && (DAT_0003c2e2 != '\0')" (binary_expression "local_33c == 3" identifier == number_literal) && (parenthesized_expression "(DAT_0003c2e2 != '\0')" ( (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )))) )) )))) )) ))) )) ))) )) (compound_statement "{\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" { (labeled_statement "LAB_00018410:\n      cVar5 = (char)*local_338;" statement_identifier : (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;)) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;" if (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0'))" ( (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" ( (binary_expression "cVar5 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar3 = *local_348, cVar3 != '\0')" ( (comma_expression "cVar3 = *local_348, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) , (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" identifier = (cast_expression "(char *)(local_330 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 3)" ( (binary_expression "local_330 + 3" identifier + number_literal) )))) ;) (if_statement "if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" if (parenthesized_expression "((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5))" ( (binary_expression "(DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)" (parenthesized_expression "(DAT_0003c2d0 < 3)" ( (binary_expression "DAT_0003c2d0 < 3" identifier < number_literal) )) || (parenthesized_expression "(DAT_0003c2d0 < 5)" ( (binary_expression "DAT_0003c2d0 < 5" identifier < number_literal) ))) )) (compound_statement "{\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" else (compound_statement "{\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 == 5) goto LAB_00018210;" if (parenthesized_expression "(DAT_0003c2d0 == 5)" ( (binary_expression "DAT_0003c2d0 == 5" identifier == number_literal) )) (goto_statement "goto LAB_00018210;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (if_statement "if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" if (parenthesized_expression "(DAT_0003c2d4 != '\0')" ( (binary_expression "DAT_0003c2d4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" if (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" ( (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" ( (binary_expression "local_33c == 6" identifier == number_literal) )) || (parenthesized_expression "(local_33c == 0)" ( (binary_expression "local_33c == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" { (labeled_statement "LAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" statement_identifier : (if_statement "if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" if (parenthesized_expression "((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))))" ( (binary_expression "(DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" (parenthesized_expression "(DAT_0003c2d0 != 5)" ( (binary_expression "DAT_0003c2d0 != 5" identifier != number_literal) )) && (parenthesized_expression "(((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" ( (parenthesized_expression "((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))" ( (binary_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')" (parenthesized_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0'))" ( (binary_expression "DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')" (binary_expression "DAT_0003c348 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(DAT_0003c2d5 == '\0')" ( (binary_expression "DAT_0003c2d5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(DAT_0003c2d4 == '\0')" ( (binary_expression "DAT_0003c2d4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" { (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (if_statement "if (local_33c != 0) goto LAB_000183a9;" if (parenthesized_expression "(local_33c != 0)" ( (binary_expression "local_33c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000183a9;" goto statement_identifier ;)) }))) })) (goto_statement "goto LAB_00018410;" goto statement_identifier ;) })) (if_statement "if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }" { (labeled_statement "LAB_00018fd0:\n      uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" else (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;" if (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" ( (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" ( (binary_expression "local_33c == 6" identifier == number_literal) )) || (parenthesized_expression "(local_33c == 0)" ( (binary_expression "local_33c == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00018f48;" goto statement_identifier ;)) (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (labeled_statement "LAB_000183a9:\n      uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;" if (parenthesized_expression "((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))" ( (binary_expression "(local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" (parenthesized_expression "(local_33c == 5)" ( (binary_expression "local_33c == 5" identifier == number_literal) )) && (parenthesized_expression "((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" ( (parenthesized_expression "(DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))" ( (binary_expression "DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" (binary_expression "DAT_0003c2e4 == 3" identifier == number_literal) || (parenthesized_expression "((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" ( (parenthesized_expression "(puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))" ( (comma_expression "puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" ( (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))" ( (binary_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )))) )) || (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (comma_expression "puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) )))) )) ))) )) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00018410;" goto statement_identifier ;)) }))) }) (else_clause "else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" else (compound_statement "{\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" { (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" if (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'))" ( (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" ( (binary_expression "cVar5 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" ( (comma_expression "cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) , (comma_expression "puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" { (labeled_statement "LAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" statement_identifier : (expression_statement "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" (assignment_expression "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5)" identifier = (cast_expression "(uint *)CONCAT31(local_350._1_3_,cVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_350._1_3_,cVar5)" identifier (argument_list "(local_350._1_3_,cVar5)" ( (field_expression "local_350._1_3_" identifier . field_identifier) , identifier ))))) ;)) (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" identifier = identifier) ;) (expression_statement "sVar8 = strlen((char *)local_338);" (assignment_expression "sVar8 = strlen((char *)local_338)" identifier = (call_expression "strlen((char *)local_338)" identifier (argument_list "((char *)local_338)" ( (cast_expression "(char *)local_338" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar15 = local_348;" (assignment_expression "pcVar15 = local_348" identifier = identifier) ;) (expression_statement "sVar10 = strlen(local_348);" (assignment_expression "sVar10 = strlen(local_348)" identifier = (call_expression "strlen(local_348)" identifier (argument_list "(local_348)" ( identifier )))) ;) (expression_statement "cVar5 = local_351;" (assignment_expression "cVar5 = local_351" identifier = identifier) ;) (expression_statement "cVar3 = (char)local_350;" (assignment_expression "cVar3 = (char)local_350" identifier = (cast_expression "(char)local_350" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);" (assignment_expression "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0)" identifier = (unary_expression "-(sVar8 + 0x1d + sVar10 & 0xfffffff0)" - (parenthesized_expression "(sVar8 + 0x1d + sVar10 & 0xfffffff0)" ( (binary_expression "sVar8 + 0x1d + sVar10 & 0xfffffff0" (binary_expression "sVar8 + 0x1d + sVar10" (binary_expression "sVar8 + 0x1d" identifier + number_literal) + identifier) & number_literal) )))) ;) (expression_statement "puVar20 = auStack_35c + iVar6;" (assignment_expression "puVar20 = auStack_35c + iVar6" identifier = (binary_expression "auStack_35c + iVar6" identifier + identifier)) ;) (expression_statement "local_334 = (uint *)((int)&local_350 + iVar6);" (assignment_expression "local_334 = (uint *)((int)&local_350 + iVar6)" identifier = (cast_expression "(uint *)((int)&local_350 + iVar6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_350 + iVar6)" ( (binary_expression "(int)&local_350 + iVar6" (cast_expression "(int)&local_350" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_350" & identifier)) + identifier) )))) ;) (if_statement "if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" if (parenthesized_expression "((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0'))" ( (binary_expression "(local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')" (parenthesized_expression "(local_351 != '.')" ( (binary_expression "local_351 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "(local_350 = local_334, pcVar15[1] != '\0')" ( (comma_expression "local_350 = local_334, pcVar15[1] != '\0'" (assignment_expression "local_350 = local_334" identifier = identifier) , (binary_expression "pcVar15[1] != '\0'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" { (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" identifier = identifier) ;) (expression_statement "pcVar9 = local_348;" (assignment_expression "pcVar9 = local_348" identifier = identifier) ;) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" identifier = identifier) ;) (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" { (expression_statement "cVar1 = cVar2;" (assignment_expression "cVar1 = cVar2" identifier = identifier) ;) (expression_statement "local_350 = (uint *)((int)puVar14 + 1);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)puVar14 = cVar5;" (assignment_expression "*(char *)puVar14 = cVar5" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (cVar1 == '\0') break;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = pcVar9 + 2;" (assignment_expression "pcVar15 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = local_350;" (assignment_expression "puVar14 = local_350" identifier = identifier) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "cVar5 = cVar1;" (assignment_expression "cVar5 = cVar1" identifier = identifier) ;) })) (if_statement "if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" if (parenthesized_expression "((local_348 < pcVar9 + 1) && (*pcVar9 != '/'))" ( (binary_expression "(local_348 < pcVar9 + 1) && (*pcVar9 != '/')" (parenthesized_expression "(local_348 < pcVar9 + 1)" ( (binary_expression "local_348 < pcVar9 + 1" identifier < (binary_expression "pcVar9 + 1" identifier + number_literal)) )) && (parenthesized_expression "(*pcVar9 != '/')" ( (binary_expression "*pcVar9 != '/'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" { (expression_statement "*(char *)local_350 = '/';" (assignment_expression "*(char *)local_350 = '/'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_350 = (uint *)((int)puVar14 + 2);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 2)" identifier = (cast_expression "(uint *)((int)puVar14 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 2)" ( (binary_expression "(int)puVar14 + 2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) (expression_statement "puVar14 = local_338;" (assignment_expression "puVar14 = local_338" identifier = identifier) ;) (if_statement "if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" { (do_statement "do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');" do (compound_statement "{\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        }" { (expression_statement "puVar11 = (uint *)((int)local_350 + 1);" (assignment_expression "puVar11 = (uint *)((int)local_350 + 1)" identifier = (cast_expression "(uint *)((int)local_350 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_350 + 1)" ( (binary_expression "(int)local_350 + 1" (cast_expression "(int)local_350" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)local_350 = cVar3;" (assignment_expression "*(char *)local_350 = cVar3" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "cVar3 = *(char *)((int)puVar14 + 1);" (assignment_expression "cVar3 = *(char *)((int)puVar14 + 1)" identifier = (pointer_expression "*(char *)((int)puVar14 + 1)" * (cast_expression "(char *)((int)puVar14 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_350 = puVar11;" (assignment_expression "local_350 = puVar11" identifier = identifier) ;) (expression_statement "puVar14 = (uint *)((int)puVar14 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "*(char *)local_350 = '\0';" (assignment_expression "*(char *)local_350 = '\0'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" if (parenthesized_expression "((char)local_34c != '\0')" ( (binary_expression "(char)local_34c != '\0'" (cast_expression "(char)local_34c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" { (labeled_statement "LAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1897e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1897e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001b7b0();" (assignment_expression "iVar6 = FUN_0001b7b0()" identifier = (call_expression "FUN_0001b7b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_330[2] = iVar6;" (assignment_expression "local_330[2] = iVar6" (subscript_expression "local_330[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "error canonicalizing %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "error canonicalizing %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""error canonicalizing %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189a5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189a5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189bb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189bb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar16 = DAT_0003c2d0;" (assignment_expression "uVar16 = DAT_0003c2d0" identifier = identifier) ;) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" identifier = (cast_expression "(char *)(local_330 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 3)" ( (binary_expression "local_330 + 3" identifier + number_literal) )))) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 < 3) goto LAB_00018470;" if (parenthesized_expression "(DAT_0003c2d0 < 3)" ( (binary_expression "DAT_0003c2d0 < 3" identifier < number_literal) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (if_statement "if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" if (parenthesized_expression "(DAT_0003c2d0 < 5)" ( (binary_expression "DAT_0003c2d0 < 5" identifier < number_literal) )) (compound_statement "{\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }" { (if_statement "if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" { (labeled_statement "LAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;" statement_identifier : (expression_statement "*(char **)(puVar21 + -8) = local_348;" (assignment_expression "*(char **)(puVar21 + -8) = local_348" (pointer_expression "*(char **)(puVar21 + -8)" * (cast_expression "(char **)(puVar21 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar21 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar21 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar21 + -0xc)" * (cast_expression "(uint **)(puVar21 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x18488;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x18488" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));" (assignment_expression "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" identifier = (call_expression "__lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" identifier (argument_list "(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" ( (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar21 + -0xc)" * (cast_expression "(char **)(puVar21 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar21 + -8)" * (cast_expression "(stat64 **)(puVar21 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" identifier = identifier) ;) (goto_statement "goto joined_r0x0001848d;" goto statement_identifier ;) })) (expression_statement "*(undefined4 **)(puVar20 + -8) = local_330 + 3;" (assignment_expression "*(undefined4 **)(puVar20 + -8) = local_330 + 3" (pointer_expression "*(undefined4 **)(puVar20 + -8)" * (cast_expression "(undefined4 **)(puVar20 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_330 + 3" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" * (cast_expression "(uint **)(puVar20 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189eb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189eb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" identifier (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" ( (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar20 + -8)" * (cast_expression "(stat64 **)(puVar20 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" if (parenthesized_expression "(uVar16 != 3)" ( (binary_expression "uVar16 != 3" identifier != number_literal) )) (compound_statement "{\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" { (if_statement "if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18f95;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18f95" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar12 != 2) goto LAB_00018f9e;" if (parenthesized_expression "(*piVar12 != 2)" ( (binary_expression "*piVar12 != 2" (pointer_expression "*piVar12" * identifier) != number_literal) )) (goto_statement "goto LAB_00018f9e;" goto statement_identifier ;)) }) (else_clause "else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" else (compound_statement "{\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" { (expression_statement "local_34c = local_330[7];" (assignment_expression "local_34c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;) (if_statement "if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;" if (parenthesized_expression "((local_330[7] & 0xf000) == 0x4000)" ( (binary_expression "(local_330[7] & 0xf000) == 0x4000" (parenthesized_expression "(local_330[7] & 0xf000)" ( (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00018a1e;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (labeled_statement "LAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" statement_identifier : (if_statement "if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" { (labeled_statement "LAB_00018f9e:\n        uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;) }))) (expression_statement "cVar5 = (char)local_344;" (assignment_expression "cVar5 = (char)local_344" identifier = (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" else (compound_statement "{\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" { (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 != 5) goto LAB_00018470;" if (parenthesized_expression "(DAT_0003c2d0 != 5)" ( (binary_expression "DAT_0003c2d0 != 5" identifier != number_literal) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (labeled_statement "LAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;" statement_identifier : (expression_statement "*(char **)(puVar19 + -8) = local_348;" (assignment_expression "*(char **)(puVar19 + -8) = local_348" (pointer_expression "*(char **)(puVar19 + -8)" * (cast_expression "(char **)(puVar19 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar19 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar19 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar19 + -0xc)" * (cast_expression "(uint **)(puVar19 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" * (cast_expression "(undefined4 *)(puVar19 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x1822b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x1822b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" identifier (argument_list "(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" ( (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar19 + -0xc)" * (cast_expression "(char **)(puVar19 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar19 + -8)" * (cast_expression "(stat64 **)(puVar19 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) (labeled_statement "joined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" statement_identifier : (if_statement "if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184aa;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184aa" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184be;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184be" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_344 != '\0') goto LAB_0001831b;" if (parenthesized_expression "((char)local_344 != '\0')" ( (binary_expression "(char)local_344 != '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;)) (goto_statement "goto LAB_000182fb;" goto statement_identifier ;) }))) }))) (expression_statement "*(undefined1 *)(local_330 + 0x1e) = 1;" (assignment_expression "*(undefined1 *)(local_330 + 0x1e) = 1" (pointer_expression "*(undefined1 *)(local_330 + 0x1e)" * (cast_expression "(undefined1 *)(local_330 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 0x1e)" ( (binary_expression "local_330 + 0x1e" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" if (parenthesized_expression "(((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0'))" ( (binary_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')" (parenthesized_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000))" ( (binary_expression "(local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" (parenthesized_expression "(local_33c == 5)" ( (binary_expression "local_33c == 5" identifier == number_literal) )) || (parenthesized_expression "(local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" ( (comma_expression "local_33c = local_330[7], (local_33c & 0xf000) == 0x8000" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) , (binary_expression "(local_33c & 0xf000) == 0x8000" (parenthesized_expression "(local_33c & 0xf000)" ( (binary_expression "local_33c & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(DAT_0003c2e2 != '\0')" ( (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x188e7;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x188e7" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000146d0();" (assignment_expression "cVar3 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" { (expression_statement "iVar6 = local_330[3];" (assignment_expression "iVar6 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) (expression_statement "local_33c = local_330[4];" (assignment_expression "local_33c = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18906;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18906" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = DAT_0003b39c;" (assignment_expression "uVar16 = DAT_0003b39c" identifier = identifier) ;) (expression_statement "iVar13 = DAT_0003b398;" (assignment_expression "iVar13 = DAT_0003b398" identifier = identifier) ;) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (if_statement "if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" if (parenthesized_expression "(local_33c != uVar16 || iVar13 != iVar6)" ( (binary_expression "local_33c != uVar16 || iVar13 != iVar6" (binary_expression "local_33c != uVar16" identifier != identifier) || (binary_expression "iVar13 != iVar6" identifier != identifier)) )) (compound_statement "{\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" { (expression_statement "DAT_0003b39c = local_33c;" (assignment_expression "DAT_0003b39c = local_33c" identifier = identifier) ;) (expression_statement "DAT_0003b398 = iVar6;" (assignment_expression "DAT_0003b398 = iVar6" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(local_330 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(local_330 + 0x20) = 0" (pointer_expression "*(undefined1 *)(local_330 + 0x20)" * (cast_expression "(undefined1 *)(local_330 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 0x20)" ( (binary_expression "local_330 + 0x20" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" if (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c335 != '\0'))" ( (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c335 != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }" { (if_statement "if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" if (parenthesized_expression "(local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390)" ( (binary_expression "local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390" (binary_expression "local_330[4] == DAT_0003b394" (subscript_expression "local_330[4]" identifier [ number_literal ]) == identifier) && (binary_expression "local_330[3] == DAT_0003b390" (subscript_expression "local_330[3]" identifier [ number_literal ]) == identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eca;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eca" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "puVar23[0x1d] = &DAT_0003b1fa;" (assignment_expression "puVar23[0x1d] = &DAT_0003b1fa" (subscript_expression "puVar23[0x1d]" identifier [ number_literal ]) = (pointer_expression "&DAT_0003b1fa" & identifier)) ;) (labeled_statement "LAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" statement_identifier : (if_statement "if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) }))) (expression_statement "cVar5 = false;" (assignment_expression "cVar5 = false" identifier = false) ;) (labeled_statement "LAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" statement_identifier : (if_statement "if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" if (parenthesized_expression "(local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388)" ( (binary_expression "local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388" (binary_expression "local_330[4] == DAT_0003b38c" (subscript_expression "local_330[4]" identifier [ number_literal ]) == identifier) && (binary_expression "local_330[3] == DAT_0003b388" (subscript_expression "local_330[3]" identifier [ number_literal ]) == identifier)) )) (compound_statement "{\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }" { (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001900a:\n          uVar17 = 1;" statement_identifier : (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;)) (if_statement "if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" if (parenthesized_expression "((bool)cVar5 == false)" ( (binary_expression "(bool)cVar5 == false" (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "cVar5 = DAT_0003c334;" (assignment_expression "cVar5 = DAT_0003c334" identifier = identifier) ;) })) }) (else_clause "else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" else (compound_statement "{\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" { (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = local_348;" (assignment_expression "*(char **)(puVar20 + -0xc) = local_348" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = FUN_0001c190();" (assignment_expression "uVar16 = FUN_0001c190()" identifier = (call_expression "FUN_0001c190()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" { (expression_statement "uVar16 = uVar16 >> 0x1f;" (assignment_expression "uVar16 = uVar16 >> 0x1f" identifier = (binary_expression "uVar16 >> 0x1f" identifier >> number_literal)) ;) (if_statement "if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" if (parenthesized_expression "(((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f))" ( (binary_expression "((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)" (parenthesized_expression "((*piVar12 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(*piVar12 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(*piVar12 - 0x16U & 0xffffffef)" ( (binary_expression "*piVar12 - 0x16U & 0xffffffef" (binary_expression "*piVar12 - 0x16U" (pointer_expression "*piVar12" * identifier) - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*piVar12 == 0x5f)" ( (binary_expression "*piVar12 == 0x5f" (pointer_expression "*piVar12" * identifier) == number_literal) ))) )) (compound_statement "{\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" { (expression_statement "DAT_0003b388 = local_330[3];" (assignment_expression "DAT_0003b388 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) (expression_statement "DAT_0003b38c = local_330[4];" (assignment_expression "DAT_0003b38c = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_0001900a;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" identifier = number_literal) ;) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })))) (expression_statement "DAT_0003c334 = cVar5;" (assignment_expression "DAT_0003c334 = cVar5" identifier = identifier) ;) (expression_statement "local_330[0x1f] = uVar17;" (assignment_expression "local_330[0x1f] = uVar17" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" { (labeled_statement "LAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;" statement_identifier : (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = FUN_000234e0();" (assignment_expression "uVar17 = FUN_000234e0()" identifier = (call_expression "FUN_000234e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18adb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18adb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0" (pointer_expression "*(undefined **)(puVar20 + -0x18)" * (cast_expression "(undefined **)(puVar20 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&DAT_0002fff0" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar20 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar20 + -0x1c)" * (cast_expression "(int *)(puVar20 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18aec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18aec" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "error();" (call_expression "error()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" else (compound_statement "{\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" { (if_statement "if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" { (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_330 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18732;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18732" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00028250();" (assignment_expression "iVar6 = FUN_00028250()" identifier = (call_expression "FUN_00028250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar6) goto LAB_0001873d;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_0001873d;" goto statement_identifier ;)) (labeled_statement "LAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18a57;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18a57" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "bVar26 = iVar6 == 0x5f;" (assignment_expression "bVar26 = iVar6 == 0x5f" identifier = (binary_expression "iVar6 == 0x5f" identifier == number_literal)) ;) (expression_statement "local_33c = CONCAT31(local_33c._1_3_,bVar26);" (assignment_expression "local_33c = CONCAT31(local_33c._1_3_,bVar26)" identifier = (call_expression "CONCAT31(local_33c._1_3_,bVar26)" identifier (argument_list "(local_33c._1_3_,bVar26)" ( (field_expression "local_33c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" if (parenthesized_expression "(((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26))" ( (binary_expression "((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)" (parenthesized_expression "((iVar6 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(iVar6 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(iVar6 - 0x16U & 0xffffffef)" ( (binary_expression "iVar6 - 0x16U & 0xffffffef" (binary_expression "iVar6 - 0x16U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar26)" ( identifier ))) )) (compound_statement "{\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" { (expression_statement "DAT_0003b394 = local_330[4];" (assignment_expression "DAT_0003b394 = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) (expression_statement "DAT_0003b390 = local_330[3];" (assignment_expression "DAT_0003b390 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_330[0x1d] = &DAT_0003b1fa;" (assignment_expression "local_330[0x1d] = &DAT_0003b1fa" (subscript_expression "local_330[0x1d]" identifier [ number_literal ]) = (pointer_expression "&DAT_0003b1fa" & identifier)) ;) (if_statement "if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;" if (parenthesized_expression "((iVar6 == 0x3d) || (bVar26))" ( (binary_expression "(iVar6 == 0x3d) || (bVar26)" (parenthesized_expression "(iVar6 == 0x3d)" ( (binary_expression "iVar6 == 0x3d" identifier == number_literal) )) || (parenthesized_expression "(bVar26)" ( identifier ))) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018ac2;" goto statement_identifier ;) })) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_330 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18a47;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18a47" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00028280();" (assignment_expression "iVar6 = FUN_00028280()" identifier = (call_expression "FUN_00028280()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 < 0) goto LAB_00018a52;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018a52;" goto statement_identifier ;)) (labeled_statement "LAB_0001873d:\n        bVar27 = iVar6 == 0;" statement_identifier : (expression_statement "bVar27 = iVar6 == 0;" (assignment_expression "bVar27 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;)) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)"unlabeled";" (assignment_expression "pbVar22 = (byte *)"unlabeled"" identifier = (cast_expression "(byte *)"unlabeled"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""unlabeled"" " string_content "))) ;) (expression_statement "pbVar25 = (byte *)local_330[0x1d];" (assignment_expression "pbVar25 = (byte *)local_330[0x1d]" identifier = (cast_expression "(byte *)local_330[0x1d]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[0x1d]" identifier [ number_literal ]))) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar22 < *pbVar25;" (assignment_expression "bVar26 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar27 = *pbVar22 == *pbVar25;" (assignment_expression "bVar27 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "cVar5 = (!bVar26 && !bVar27) != bVar26;" (assignment_expression "cVar5 = (!bVar26 && !bVar27) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar27) != bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" ( (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) != identifier)) ;) (if_statement "if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" if (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18ca5;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18ca5" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00018ca7;" goto statement_identifier ;) })) (if_statement "if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "((!bVar26 && !bVar27) == bVar26)" ( (binary_expression "(!bVar26 && !bVar27) == bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" ( (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) })) (expression_statement "local_330[0x1f] = 1;" (assignment_expression "local_330[0x1f] = 1" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "DAT_0003c334 = '\x01';" (assignment_expression "DAT_0003c334 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" identifier = (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(uVar16 != 0xa000)" ( (binary_expression "uVar16 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (if_statement "if (DAT_0003c308 != 0) goto LAB_00018da0;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018da0;" goto statement_identifier ;)) (labeled_statement "LAB_000187b9:\n      puVar23 = local_330;" statement_identifier : (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_330[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187d0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187d0" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar15 = (char *)FUN_0001b280();" (assignment_expression "pcVar15 = (char *)FUN_0001b280()" identifier = (cast_expression "(char *)FUN_0001b280()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b280()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar23[1] = pcVar15;" (assignment_expression "puVar23[1] = pcVar15" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot read symbolic link %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19043;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19043" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19059;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19059" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (char *)local_330[1];" (assignment_expression "pcVar15 = (char *)local_330[1]" identifier = (cast_expression "(char *)local_330[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[1]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_000187e0;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187e0;" goto statement_identifier ;)) (labeled_statement "LAB_0001906d:\n        iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" statement_identifier : (if_statement "if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" if (parenthesized_expression "(*pcVar15 == '/')" ( (binary_expression "*pcVar15 == '/'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }" { (labeled_statement "LAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;" statement_identifier : (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18f21;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18f21" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00024200();" (assignment_expression "iVar6 = FUN_00024200()" identifier = (call_expression "FUN_00024200()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" else (compound_statement "{\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" { (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187f7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187f7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = FUN_0001c010();" (assignment_expression "uVar16 = FUN_0001c010()" identifier = (call_expression "FUN_0001c010()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar16 == 0) goto LAB_00018f18;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f18;" goto statement_identifier ;)) (expression_statement "local_33c = uVar16;" (assignment_expression "local_33c = uVar16" identifier = identifier) ;) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18811;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18811" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;" (assignment_expression "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_33c + 2 + sVar8" (binary_expression "local_33c + 2" identifier + number_literal) + identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18823;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18823" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00023f30();" (assignment_expression "iVar6 = FUN_00023f30()" identifier = (call_expression "FUN_00023f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = local_33c;" (assignment_expression "uVar16 = local_33c" identifier = identifier) ;) (if_statement "if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }" if (parenthesized_expression "(*(char *)((int)local_334 + (local_33c - 1)) != '/')" ( (binary_expression "*(char *)((int)local_334 + (local_33c - 1)) != '/'" (pointer_expression "*(char *)((int)local_334 + (local_33c - 1))" * (cast_expression "(char *)((int)local_334 + (local_33c - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_334 + (local_33c - 1))" ( (binary_expression "(int)local_334 + (local_33c - 1)" (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_33c - 1)" ( (binary_expression "local_33c - 1" identifier - number_literal) ))) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n            uVar16 = local_33c + 1;\n          }" { (expression_statement "uVar16 = local_33c + 1;" (assignment_expression "uVar16 = local_33c + 1" identifier = (binary_expression "local_33c + 1" identifier + number_literal)) ;) })) (expression_statement "*(uint *)(puVar20 + -8) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -8) = uVar16" (pointer_expression "*(uint *)(puVar20 + -8)" * (cast_expression "(uint *)(puVar20 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" * (cast_expression "(uint **)(puVar20 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1884e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1884e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));" (assignment_expression "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" identifier = (call_expression "stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" identifier (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar20 + -8)" * (cast_expression "(size_t *)(puVar20 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar20 + -0xc) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0xc) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar9;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar9" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18857;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18857" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));" (call_expression "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" identifier (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) ))) ;) })))) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_0001906d;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001906d;" goto statement_identifier ;)) (if_statement "if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" if (parenthesized_expression "(local_330[0x21] == 0)" ( (binary_expression "local_330[0x21] == 0" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x1911a;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x1911a" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar5 = FUN_00014c00();" (assignment_expression "cVar5 = FUN_00014c00()" identifier = (call_expression "FUN_00014c00()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar23[0x21] = 0xffffffff;\n          }" { (expression_statement "puVar23[0x21] = 0xffffffff;" (assignment_expression "puVar23[0x21] = 0xffffffff" (subscript_expression "puVar23[0x21]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" if (parenthesized_expression "((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0'))" ( (binary_expression "(1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')" (parenthesized_expression "(1 < DAT_0003c2e4)" ( (binary_expression "1 < DAT_0003c2e4" number_literal < identifier) )) || (parenthesized_expression "(DAT_0003c2d5 != '\0')" ( (binary_expression "DAT_0003c2d5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" { (expression_statement "*(undefined1 **)(puVar20 + -8) = local_324;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_324" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0xc) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar6" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" identifier (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" ( (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar20 + -8)" * (cast_expression "(stat64 **)(puVar20 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" { (expression_statement "*(undefined1 *)((int)local_330 + 0x79) = 1;" (assignment_expression "*(undefined1 *)((int)local_330 + 0x79) = 1" (pointer_expression "*(undefined1 *)((int)local_330 + 0x79)" * (cast_expression "(undefined1 *)((int)local_330 + 0x79)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_330 + 0x79)" ( (binary_expression "(int)local_330 + 0x79" (cast_expression "(int)local_330" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }" if (parenthesized_expression "((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000))" ( (binary_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)" (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0))" ( (binary_expression "((char)local_344 == '\0') || (DAT_0003c308 == 0)" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((local_314 & 0xf000) != 0x4000)" ( (binary_expression "(local_314 & 0xf000) != 0x4000" (parenthesized_expression "(local_314 & 0xf000)" ( (binary_expression "local_314 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              local_330[0x1c] = local_314;\n            }" { (expression_statement "local_330[0x1c] = local_314;" (assignment_expression "local_330[0x1c] = local_314" (subscript_expression "local_330[0x1c]" identifier [ number_literal ]) = identifier) ;) })) })) })) }))) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18899;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18899" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar20 + -0x10));" (call_expression "free(*(void **)(puVar20 + -0x10))" identifier (argument_list "(*(void **)(puVar20 + -0x10))" ( (pointer_expression "*(void **)(puVar20 + -0x10)" * (cast_expression "(void **)(puVar20 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" identifier = (cast_expression "(uint *)local_330[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (uint)local_330[7] & 0xf000;" (assignment_expression "uVar16 = (uint)local_330[7] & 0xf000" identifier = (binary_expression "(uint)local_330[7] & 0xf000" (cast_expression "(uint)local_330[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_330[7]" identifier [ number_literal ])) & number_literal)) ;) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(uVar16 != 0xa000)" ( (binary_expression "uVar16 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (labeled_statement "LAB_000188bb:\n      local_330[0x1b] = 6;" statement_identifier : (expression_statement "local_330[0x1b] = 6;" (assignment_expression "local_330[0x1b] = 6" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" else (compound_statement "{\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" { (labeled_statement "LAB_00018287:\n      local_33c = local_330[7];" statement_identifier : (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;)) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" identifier = (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" if (parenthesized_expression "(uVar16 == 0xa000)" ( (binary_expression "uVar16 == 0xa000" identifier == number_literal) )) (compound_statement "{\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" { (labeled_statement "LAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" statement_identifier : (if_statement "if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" if (parenthesized_expression "(DAT_0003c2d5 != '\0')" ( (binary_expression "DAT_0003c2d5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000187b9;" goto statement_identifier ;))) (goto_statement "goto LAB_000188bb;" goto statement_identifier ;) })) (labeled_statement "LAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" statement_identifier : (if_statement "if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" if (parenthesized_expression "(uVar16 == 0x4000)" ( (binary_expression "uVar16 == 0x4000" identifier == number_literal) )) (compound_statement "{\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }" { (if_statement "if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }" if (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c2cd != '\0'))" ( (binary_expression "((char)local_344 == '\0') || (DAT_0003c2cd != '\0')" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_0003c2cd != '\0')" ( (binary_expression "DAT_0003c2cd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          local_330[0x1b] = 3;\n        }" { (expression_statement "local_330[0x1b] = 3;" (assignment_expression "local_330[0x1b] = 3" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_330[0x1b] = 9;\n        }" else (compound_statement "{\n          local_330[0x1b] = 9;\n        }" { (expression_statement "local_330[0x1b] = 9;" (assignment_expression "local_330[0x1b] = 9" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n        local_330[0x1b] = 5;\n      }" else (compound_statement "{\n        local_330[0x1b] = 5;\n      }" { (expression_statement "local_330[0x1b] = 5;" (assignment_expression "local_330[0x1b] = 5" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) })))) }))) (expression_statement "uVar17 = local_330[0x11];" (assignment_expression "uVar17 = local_330[0x11]" identifier = (subscript_expression "local_330[0x11]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = local_330[0x12];" (assignment_expression "uVar24 = local_330[0x12]" identifier = (subscript_expression "local_330[0x12]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" if (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0'))" ( (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0003c2fc != '\0')" ( (binary_expression "DAT_0003c2fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x200;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x200" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" * (cast_expression "(uint **)(puVar20 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = uVar24;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = uVar24" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18505;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18505" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" identifier = (call_expression "FUN_0001df30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18510;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18510" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" identifier = (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }" if (parenthesized_expression "(DAT_0003c32c < iVar6)" ( (binary_expression "DAT_0003c32c < iVar6" identifier < identifier) )) (compound_statement "{\n        DAT_0003c32c = iVar6;\n      }" { (expression_statement "DAT_0003c32c = iVar6;" (assignment_expression "DAT_0003c32c = iVar6" identifier = identifier) ;) })) (if_statement "if (DAT_0003c308 != 0) goto LAB_000182df;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000182df;" goto statement_identifier ;)) (if_statement "if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" if (parenthesized_expression "(DAT_0003b1f9 != '\0')" ( (binary_expression "DAT_0003b1f9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eae;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eae" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" identifier = (call_expression "FUN_00018000()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }" if (parenthesized_expression "(DAT_0003c320 < iVar6)" ( (binary_expression "DAT_0003c320 < iVar6" identifier < identifier) )) (compound_statement "{\n          DAT_0003c320 = iVar6;\n        }" { (expression_statement "DAT_0003c320 = iVar6;" (assignment_expression "DAT_0003c320 = iVar6" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" if (parenthesized_expression "(DAT_0003b1f8 != '\0')" ( (binary_expression "DAT_0003b1f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" { (expression_statement "uVar16 = local_330[10];" (assignment_expression "uVar16 = local_330[10]" identifier = (subscript_expression "local_330[10]" identifier [ number_literal ])) ;) (if_statement "if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" if (parenthesized_expression "(DAT_0003c2fd == '\0')" ( (binary_expression "DAT_0003c2fd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }" { (expression_statement "local_344 = uVar16;" (assignment_expression "local_344 = uVar16" identifier = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190df;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190df" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001f1e0();" (assignment_expression "iVar6 = FUN_0001f1e0()" identifier = (call_expression "FUN_0001f1e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = local_344;" (assignment_expression "uVar16 = local_344" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_00018e2e;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e2e;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar15 = (char *)FUN_0001fb50();" (assignment_expression "pcVar15 = (char *)FUN_0001fb50()" identifier = (cast_expression "(char *)FUN_0001fb50()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }" if (parenthesized_expression "((int)pcVar15 < 0)" ( (binary_expression "(int)pcVar15 < 0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pcVar15 = (char *)0x0;\n          }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" else (compound_statement "{\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" { (labeled_statement "LAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;" statement_identifier : (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b" (pointer_expression "*(undefined **)(puVar20 + -0x14)" * (cast_expression "(undefined **)(puVar20 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&DAT_0002d97b" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0xb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0xb" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)(puVar20 + -0x20) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x20) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x20)" * (cast_expression "(uint **)(puVar20 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18e48;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18e48" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__sprintf_chk();" (call_expression "__sprintf_chk()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" identifier = identifier) ;) (do_statement "do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);" do (compound_statement "{\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          }" { (expression_statement "puVar11 = puVar14;" (assignment_expression "puVar11 = puVar14" identifier = identifier) ;) (expression_statement "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11" identifier = (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" * identifier) + number_literal) & (unary_expression "~*puVar11" ~ (pointer_expression "*puVar11" * identifier)))) ;) (expression_statement "uVar16 = uVar18 & 0x80808080;" (assignment_expression "uVar16 = uVar18 & 0x80808080" identifier = (binary_expression "uVar18 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar14 = puVar11 + 1;" (assignment_expression "puVar14 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) ;) (expression_statement "bVar26 = (uVar18 & 0x8080) == 0;" (assignment_expression "bVar26 = (uVar18 & 0x8080) == 0" identifier = (binary_expression "(uVar18 & 0x8080) == 0" (parenthesized_expression "(uVar18 & 0x8080)" ( (binary_expression "uVar18 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n            uVar16 = uVar16 >> 0x10;\n          }" { (expression_statement "uVar16 = uVar16 >> 0x10;" (assignment_expression "uVar16 = uVar16 >> 0x10" identifier = (binary_expression "uVar16 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" { (expression_statement "puVar14 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar14 = (uint *)((int)puVar11 + 6)" identifier = (cast_expression "(uint *)((int)puVar11 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));" (assignment_expression "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" identifier = (cast_expression "(char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" ( (binary_expression "(int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar16,(byte)uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar16,(byte)uVar16)" identifier (argument_list "((byte)uVar16,(byte)uVar16)" ( (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) }))) (if_statement "if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }" if (parenthesized_expression "((int)DAT_0003c31c < (int)pcVar15)" ( (binary_expression "(int)DAT_0003c31c < (int)pcVar15" (cast_expression "(int)DAT_0003c31c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c31c = pcVar15;\n        }" { (expression_statement "DAT_0003c31c = pcVar15;" (assignment_expression "DAT_0003c31c = pcVar15" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" if (parenthesized_expression "(DAT_0003c2fe != '\0')" ( (binary_expression "DAT_0003c2fe != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18dfe;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18dfe" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" identifier = (call_expression "FUN_00018000()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }" if (parenthesized_expression "(DAT_0003c318 < iVar6)" ( (binary_expression "DAT_0003c318 < iVar6" identifier < identifier) )) (compound_statement "{\n          DAT_0003c318 = iVar6;\n        }" { (expression_statement "DAT_0003c318 = iVar6;" (assignment_expression "DAT_0003c318 = iVar6" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003c335 != '\0') goto LAB_0001855f;" if (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001855f;" goto statement_identifier ;)) (labeled_statement "LAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;" statement_identifier : (if_statement "if (DAT_0003c308 != 0) goto LAB_000182ec;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;))) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_2c1;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_2c1" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = local_330[8];" (assignment_expression "uVar7 = local_330[8]" identifier = (subscript_expression "local_330[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185b1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185b1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }" if (parenthesized_expression "((int)DAT_0003c328 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c328 < (int)sVar8" (cast_expression "(int)DAT_0003c328" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        DAT_0003c328 = sVar8;\n      }" { (expression_statement "DAT_0003c328 = sVar8;" (assignment_expression "DAT_0003c328 = sVar8" identifier = identifier) ;) })) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" identifier = (cast_expression "(uint *)local_330[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[7]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" if (parenthesized_expression "(((uint)local_334 & 0xb000) == 0x2000)" ( (binary_expression "((uint)local_334 & 0xb000) == 0x2000" (parenthesized_expression "((uint)local_334 & 0xb000)" ( (binary_expression "(uint)local_334 & 0xb000" (cast_expression "(uint)local_334" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" { (expression_statement "uVar16 = local_330[0xc];" (assignment_expression "uVar16 = local_330[0xc]" identifier = (subscript_expression "local_330[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = local_330[0xb];" (assignment_expression "uVar18 = local_330[0xb]" identifier = (subscript_expression "local_330[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_344 = uVar18;" (assignment_expression "local_344 = uVar18" identifier = identifier) ;) (expression_statement "local_340 = uVar16;" (assignment_expression "local_340 = uVar16" identifier = identifier) ;) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (binary_expression "uVar18 >> 8 & 0xfff" (binary_expression "uVar18 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "uVar16 & 0xfffff000" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18623;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18623" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1862b;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1862b" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c314 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c314 < (int)sVar8" (cast_expression "(int)DAT_0003c314" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c314 = sVar8;\n        }" { (expression_statement "DAT_0003c314 = sVar8;" (assignment_expression "DAT_0003c314 = sVar8" identifier = identifier) ;) })) (expression_statement "iVar6 = local_330[0xc];" (assignment_expression "iVar6 = local_330[0xc]" identifier = (subscript_expression "local_330[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = local_330[0xb];" (assignment_expression "uVar16 = local_330[0xb]" identifier = (subscript_expression "local_330[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;" (assignment_expression "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)" (call_expression "(uint3)(uVar16 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((uint)(iVar6 << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(iVar6 << 0x14) >> 8)" ( (binary_expression "(uint)(iVar6 << 0x14) >> 8" (call_expression "(uint)(iVar6 << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 << 0x14)" ( (binary_expression "iVar6 << 0x14" identifier << number_literal) ))) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18665;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18665" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1866d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1866d" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c310 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c310 < (int)sVar8" (cast_expression "(int)DAT_0003c310" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c310 = sVar8;\n        }" { (expression_statement "DAT_0003c310 = sVar8;" (assignment_expression "DAT_0003c310 = sVar8" identifier = identifier) ;) })) (expression_statement "iVar6 = DAT_0003c310 + 2 + DAT_0003c314;" (assignment_expression "iVar6 = DAT_0003c310 + 2 + DAT_0003c314" identifier = (binary_expression "DAT_0003c310 + 2 + DAT_0003c314" (binary_expression "DAT_0003c310 + 2" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" if (parenthesized_expression "(iVar6 <= DAT_0003c30c)" ( (binary_expression "iVar6 <= DAT_0003c30c" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" * (cast_expression "(uint **)(puVar20 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf]" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (subscript_expression "local_330[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = (subscript_expression "puVar23[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" identifier = (call_expression "FUN_0001df30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" identifier = (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" if (parenthesized_expression "(iVar6 <= DAT_0003c30c)" ( (binary_expression "iVar6 <= DAT_0003c30c" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" else (compound_statement "{\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" { (labeled_statement "LAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" statement_identifier : (if_statement "if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" if (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" { (labeled_statement "LAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_330[0x1d]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18570;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18570" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c324 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c324 < (int)sVar8" (cast_expression "(int)DAT_0003c324" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c324 = sVar8;\n        }" { (expression_statement "DAT_0003c324 = sVar8;" (assignment_expression "DAT_0003c324 = sVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_0001857f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000182ec:\n      iVar6 = DAT_0003c30c;" statement_identifier : (expression_statement "iVar6 = DAT_0003c30c;" (assignment_expression "iVar6 = DAT_0003c30c" identifier = identifier) ;)) }))) (expression_statement "DAT_0003c30c = iVar6;" (assignment_expression "DAT_0003c30c = iVar6" identifier = identifier) ;) (if_statement "if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" if (parenthesized_expression "(DAT_0003c2d4 != '\0')" ( (binary_expression "DAT_0003c2d4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" { (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_330[0x1a]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (subscript_expression "puVar23[0x19]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186cb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186cb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186d3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186d3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }" if (parenthesized_expression "((int)DAT_0003c330 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c330 < (int)sVar8" (cast_expression "(int)DAT_0003c330" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        DAT_0003c330 = sVar8;\n      }" { (expression_statement "DAT_0003c330 = sVar8;" (assignment_expression "DAT_0003c330 = sVar8" identifier = identifier) ;) })) })) }))) (labeled_statement "LAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;" statement_identifier : (expression_statement "*(uint **)(puVar20 + -0x10) = local_338;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_338" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18309;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18309" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00024200();" (assignment_expression "uVar7 = FUN_00024200()" identifier = (call_expression "FUN_00024200()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0003c358 = DAT_0003c358 + 1;" (assignment_expression "DAT_0003c358 = DAT_0003c358 + 1" identifier = (binary_expression "DAT_0003c358 + 1" identifier + number_literal)) ;) (expression_statement "*local_330 = uVar7;" (assignment_expression "*local_330 = uVar7" (pointer_expression "*local_330" * identifier) = identifier) ;) (labeled_statement "LAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return CONCAT44(uVar24,uVar17);\n  }" { (return_statement "return CONCAT44(uVar24,uVar17);" return (call_expression "CONCAT44(uVar24,uVar17)" identifier (argument_list "(uVar24,uVar17)" ( identifier , identifier ))) ;) }))) comment (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x19152;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x19152" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b190();" (call_expression "FUN_0002b190()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuintmax_t __regparm3\ngobble_file(char *name,filetype type,ino_t inode,_Bool command_line_arg,char *dirname)\n\n{\n  int iVar1;\n  char cVar2;\n  __nlink_t _Var3;\n  uid_t uVar4;\n  __dev_t *p_Var5;\n  int iVar6;\n  Dereference_symlink DVar7;\n  fileinfo *pfVar8;\n  _Bool _Var9;\n  int iVar10;\n  filetype fVar11;\n  char *pcVar12;\n  size_t sVar13;\n  char *pcVar14;\n  char *pcVar15;\n  size_t sVar16;\n  uint *puVar17;\n  int *piVar18;\n  uint *puVar19;\n  char cVar20;\n  undefined3 in_register_00000005;\n  uint uVar21;\n  acl_type aVar22;\n  char cVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  undefined4 uVar28;\n  byte *pbVar29;\n  stat *psVar30;\n  stat *psVar31;\n  undefined4 *puVar32;\n  undefined4 uVar33;\n  byte *pbVar34;\n  int in_GS_OFFSET;\n  bool bVar35;\n  bool bVar36;\n  char cVar37;\n  byte bVar38;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  stat *local_348;\n  uint local_344;\n  uint local_340;\n  filetype local_33c;\n  uint *local_338;\n  uint *local_334;\n  fileinfo *local_330;\n  stat linkstats;\n  char b [21];\n  char buf [652];\n  \n  bVar38 = 0;\n  local_338 = (uint *)name;\n  local_344 = CONCAT31(in_register_00000005,command_line_arg);\n  local_33c = type;\n  local_348 = (stat *)inode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (cwd_n_used == cwd_n_alloc) {\n    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);\n    cwd_n_alloc = cwd_n_alloc << 1;\n  }\n  puVar26 = auStack_35c;\n  puVar25 = auStack_35c;\n  puVar27 = auStack_35c;\n  local_330 = cwd_file + cwd_n_used;\n  puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc);\n  local_330->name = (char *)0x0;\n  *(undefined4 *)&local_330->has_capability = 0;\n  uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2;\n  for (; uVar21 != 0; uVar21 = uVar21 - 1) {\n    *puVar32 = 0;\n    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;\n  }\n  *(undefined4 *)&(local_330->stat).st_ino = 0;\n  *(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0;\n  bVar35 = cwd_some_quoted == false;\n  local_330->quoted = -1;\n  local_330->filetype = local_33c;\n  if ((bVar35) && (align_variable_outer_quotes != false)) {\n    _Var9 = needs_quoting((char *)local_338);\n    local_330->quoted = (uint)_Var9;\n    if (_Var9) {\n      cwd_some_quoted = true;\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,print_hyperlink);\n  if ((char)local_344 == '\0') {\n    if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }\n  }\n  else {\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar26 + -0x10) = local_338;\n  *(undefined4 *)(puVar26 + -0x14) = 0x18309;\n  pcVar12 = xstrdup(*(char **)(puVar26 + -0x10));\n  cwd_n_used = cwd_n_used + 1;\n  local_330->name = pcVar12;\nLAB_0001831b:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar33,uVar28);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar26 + -4) = 0x19152;\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "uintmax_t __regparm3\ngobble_file(char *name,filetype type,ino_t inode,_Bool command_line_arg,char *dirname)\n\n{\n  int iVar1;\n  char cVar2;\n  __nlink_t _Var3;\n  uid_t uVar4;\n  __dev_t *p_Var5;\n  int iVar6;\n  Dereference_symlink DVar7;\n  fileinfo *pfVar8;\n  _Bool _Var9;\n  int iVar10;\n  filetype fVar11;\n  char *pcVar12;\n  size_t sVar13;\n  char *pcVar14;\n  char *pcVar15;\n  size_t sVar16;\n  uint *puVar17;\n  int *piVar18;\n  uint *puVar19;\n  char cVar20;\n  undefined3 in_register_00000005;\n  uint uVar21;\n  acl_type aVar22;\n  char cVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  undefined4 uVar28;\n  byte *pbVar29;\n  stat *psVar30;\n  stat *psVar31;\n  undefined4 *puVar32;\n  undefined4 uVar33;\n  byte *pbVar34;\n  int in_GS_OFFSET;\n  bool bVar35;\n  bool bVar36;\n  char cVar37;\n  byte bVar38;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  stat *local_348;\n  uint local_344;\n  uint local_340;\n  filetype local_33c;\n  uint *local_338;\n  uint *local_334;\n  fileinfo *local_330;\n  stat linkstats;\n  char b [21];\n  char buf [652];\n  \n  bVar38 = 0;\n  local_338 = (uint *)name;\n  local_344 = CONCAT31(in_register_00000005,command_line_arg);\n  local_33c = type;\n  local_348 = (stat *)inode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (cwd_n_used == cwd_n_alloc) {\n    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);\n    cwd_n_alloc = cwd_n_alloc << 1;\n  }\n  puVar26 = auStack_35c;\n  puVar25 = auStack_35c;\n  puVar27 = auStack_35c;\n  local_330 = cwd_file + cwd_n_used;\n  puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc);\n  local_330->name = (char *)0x0;\n  *(undefined4 *)&local_330->has_capability = 0;\n  uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2;\n  for (; uVar21 != 0; uVar21 = uVar21 - 1) {\n    *puVar32 = 0;\n    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;\n  }\n  *(undefined4 *)&(local_330->stat).st_ino = 0;\n  *(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0;\n  bVar35 = cwd_some_quoted == false;\n  local_330->quoted = -1;\n  local_330->filetype = local_33c;\n  if ((bVar35) && (align_variable_outer_quotes != false)) {\n    _Var9 = needs_quoting((char *)local_338);\n    local_330->quoted = (uint)_Var9;\n    if (_Var9) {\n      cwd_some_quoted = true;\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,print_hyperlink);\n  if ((char)local_344 == '\0') {\n    if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }\n  }\n  else {\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar26 + -0x10) = local_338;\n  *(undefined4 *)(puVar26 + -0x14) = 0x18309;\n  pcVar12 = xstrdup(*(char **)(puVar26 + -0x10));\n  cwd_n_used = cwd_n_used + 1;\n  local_330->name = pcVar12;\nLAB_0001831b:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar33,uVar28);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar26 + -4) = 0x19152;\n  __stack_chk_fail_local();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "gobble_file(char *name,filetype type,ino_t inode,_Bool command_line_arg,char *dirname)" identifier (parameter_list "(char *name,filetype type,ino_t inode,_Bool command_line_arg,char *dirname)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "filetype type" type_identifier identifier) , (parameter_declaration "ino_t inode" type_identifier identifier) , (parameter_declaration "_Bool command_line_arg" type_identifier identifier) , (parameter_declaration "char *dirname" primitive_type (pointer_declarator "*dirname" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  __nlink_t _Var3;\n  uid_t uVar4;\n  __dev_t *p_Var5;\n  int iVar6;\n  Dereference_symlink DVar7;\n  fileinfo *pfVar8;\n  _Bool _Var9;\n  int iVar10;\n  filetype fVar11;\n  char *pcVar12;\n  size_t sVar13;\n  char *pcVar14;\n  char *pcVar15;\n  size_t sVar16;\n  uint *puVar17;\n  int *piVar18;\n  uint *puVar19;\n  char cVar20;\n  undefined3 in_register_00000005;\n  uint uVar21;\n  acl_type aVar22;\n  char cVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  undefined4 uVar28;\n  byte *pbVar29;\n  stat *psVar30;\n  stat *psVar31;\n  undefined4 *puVar32;\n  undefined4 uVar33;\n  byte *pbVar34;\n  int in_GS_OFFSET;\n  bool bVar35;\n  bool bVar36;\n  char cVar37;\n  byte bVar38;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  stat *local_348;\n  uint local_344;\n  uint local_340;\n  filetype local_33c;\n  uint *local_338;\n  uint *local_334;\n  fileinfo *local_330;\n  stat linkstats;\n  char b [21];\n  char buf [652];\n  \n  bVar38 = 0;\n  local_338 = (uint *)name;\n  local_344 = CONCAT31(in_register_00000005,command_line_arg);\n  local_33c = type;\n  local_348 = (stat *)inode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (cwd_n_used == cwd_n_alloc) {\n    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);\n    cwd_n_alloc = cwd_n_alloc << 1;\n  }\n  puVar26 = auStack_35c;\n  puVar25 = auStack_35c;\n  puVar27 = auStack_35c;\n  local_330 = cwd_file + cwd_n_used;\n  puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc);\n  local_330->name = (char *)0x0;\n  *(undefined4 *)&local_330->has_capability = 0;\n  uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2;\n  for (; uVar21 != 0; uVar21 = uVar21 - 1) {\n    *puVar32 = 0;\n    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;\n  }\n  *(undefined4 *)&(local_330->stat).st_ino = 0;\n  *(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0;\n  bVar35 = cwd_some_quoted == false;\n  local_330->quoted = -1;\n  local_330->filetype = local_33c;\n  if ((bVar35) && (align_variable_outer_quotes != false)) {\n    _Var9 = needs_quoting((char *)local_338);\n    local_330->quoted = (uint)_Var9;\n    if (_Var9) {\n      cwd_some_quoted = true;\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,print_hyperlink);\n  if ((char)local_344 == '\0') {\n    if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }\n  }\n  else {\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar26 + -0x10) = local_338;\n  *(undefined4 *)(puVar26 + -0x14) = 0x18309;\n  pcVar12 = xstrdup(*(char **)(puVar26 + -0x10));\n  cwd_n_used = cwd_n_used + 1;\n  local_330->name = pcVar12;\nLAB_0001831b:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar33,uVar28);\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar26 + -4) = 0x19152;\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "__nlink_t _Var3;" type_identifier identifier ;) (declaration "uid_t uVar4;" type_identifier identifier ;) (declaration "__dev_t *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Dereference_symlink DVar7;" type_identifier identifier ;) (declaration "fileinfo *pfVar8;" type_identifier (pointer_declarator "*pfVar8" * identifier) ;) (declaration "_Bool _Var9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "filetype fVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "undefined3 in_register_00000005;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "acl_type aVar22;" type_identifier identifier ;) (declaration "char cVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined1 *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 "undefined4 uVar28;" type_identifier identifier ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "stat *psVar30;" type_identifier (pointer_declarator "*psVar30" * identifier) ;) (declaration "stat *psVar31;" type_identifier (pointer_declarator "*psVar31" * identifier) ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar35;" primitive_type identifier ;) (declaration "bool bVar36;" primitive_type identifier ;) (declaration "char cVar37;" primitive_type identifier ;) (declaration "byte bVar38;" type_identifier identifier ;) (declaration "undefined1 auStack_35c [11];" type_identifier (array_declarator "auStack_35c [11]" identifier [ number_literal ]) ;) (declaration "char local_351;" primitive_type identifier ;) (declaration "uint *local_350;" type_identifier (pointer_declarator "*local_350" * identifier) ;) (declaration "uint local_34c;" type_identifier identifier ;) (declaration "stat *local_348;" type_identifier (pointer_declarator "*local_348" * identifier) ;) (declaration "uint local_344;" type_identifier identifier ;) (declaration "uint local_340;" type_identifier identifier ;) (declaration "filetype local_33c;" type_identifier identifier ;) (declaration "uint *local_338;" type_identifier (pointer_declarator "*local_338" * identifier) ;) (declaration "uint *local_334;" type_identifier (pointer_declarator "*local_334" * identifier) ;) (declaration "fileinfo *local_330;" type_identifier (pointer_declarator "*local_330" * identifier) ;) (declaration "stat linkstats;" type_identifier identifier ;) (declaration "char b [21];" primitive_type (array_declarator "b [21]" identifier [ number_literal ]) ;) (declaration "char buf [652];" primitive_type (array_declarator "buf [652]" identifier [ number_literal ]) ;) (expression_statement "bVar38 = 0;" (assignment_expression "bVar38 = 0" identifier = number_literal) ;) (expression_statement "local_338 = (uint *)name;" (assignment_expression "local_338 = (uint *)name" identifier = (cast_expression "(uint *)name" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_344 = CONCAT31(in_register_00000005,command_line_arg);" (assignment_expression "local_344 = CONCAT31(in_register_00000005,command_line_arg)" identifier = (call_expression "CONCAT31(in_register_00000005,command_line_arg)" identifier (argument_list "(in_register_00000005,command_line_arg)" ( identifier , identifier )))) ;) (expression_statement "local_33c = type;" (assignment_expression "local_33c = type" identifier = identifier) ;) (expression_statement "local_348 = (stat *)inode;" (assignment_expression "local_348 = (stat *)inode" identifier = (cast_expression "(stat *)inode" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (cwd_n_used == cwd_n_alloc) {\n    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);\n    cwd_n_alloc = cwd_n_alloc << 1;\n  }" if (parenthesized_expression "(cwd_n_used == cwd_n_alloc)" ( (binary_expression "cwd_n_used == cwd_n_alloc" identifier == identifier) )) (compound_statement "{\n    if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);\n    cwd_n_alloc = cwd_n_alloc << 1;\n  }" { (if_statement "if (((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" if (parenthesized_expression "(((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0))" ( (binary_expression "((int)((ulonglong)cwd_n_used * 0x110) < 0) ||\n       ((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)" (parenthesized_expression "((int)((ulonglong)cwd_n_used * 0x110) < 0)" ( (binary_expression "(int)((ulonglong)cwd_n_used * 0x110) < 0" (cast_expression "(int)((ulonglong)cwd_n_used * 0x110)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)cwd_n_used * 0x110)" ( (binary_expression "(ulonglong)cwd_n_used * 0x110" (cast_expression "(ulonglong)cwd_n_used" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) ))) < number_literal) )) || (parenthesized_expression "((int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)cwd_n_used * 0x110 >> 0x20) != 0" (cast_expression "(int)((ulonglong)cwd_n_used * 0x110 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)cwd_n_used * 0x110 >> 0x20)" ( (binary_expression "(ulonglong)cwd_n_used * 0x110 >> 0x20" (binary_expression "(ulonglong)cwd_n_used * 0x110" (cast_expression "(ulonglong)cwd_n_used" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110);" (assignment_expression "cwd_file = (fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110)" identifier = (cast_expression "(fileinfo *)xrealloc(cwd_file,cwd_n_used * 0x110)" ( (type_descriptor "fileinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(cwd_file,cwd_n_used * 0x110)" identifier (argument_list "(cwd_file,cwd_n_used * 0x110)" ( identifier , (binary_expression "cwd_n_used * 0x110" identifier * number_literal) ))))) ;) (expression_statement "cwd_n_alloc = cwd_n_alloc << 1;" (assignment_expression "cwd_n_alloc = cwd_n_alloc << 1" identifier = (binary_expression "cwd_n_alloc << 1" identifier << number_literal)) ;) })) (expression_statement "puVar26 = auStack_35c;" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar25 = auStack_35c;" (assignment_expression "puVar25 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar27 = auStack_35c;" (assignment_expression "puVar27 = auStack_35c" identifier = identifier) ;) (expression_statement "local_330 = cwd_file + cwd_n_used;" (assignment_expression "local_330 = cwd_file + cwd_n_used" identifier = (binary_expression "cwd_file + cwd_n_used" identifier + identifier)) ;) (expression_statement "puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc);" (assignment_expression "puVar32 = (undefined4 *)((uint)&local_330->linkname & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)&local_330->linkname & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)&local_330->linkname & 0xfffffffc)" ( (binary_expression "(uint)&local_330->linkname & 0xfffffffc" (binary_expression "(uint)&local_330->linkname" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "local_330->linkname" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "local_330->name = (char *)0x0;" (assignment_expression "local_330->name = (char *)0x0" (field_expression "local_330->name" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&local_330->has_capability = 0;" (assignment_expression "*(undefined4 *)&local_330->has_capability = 0" (pointer_expression "*(undefined4 *)&local_330->has_capability" * (cast_expression "(undefined4 *)&local_330->has_capability" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_330->has_capability" & (field_expression "local_330->has_capability" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2;" (assignment_expression "uVar21 = (uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2" identifier = (binary_expression "(uint)((int)local_330 + (0x84 - (int)puVar32)) >> 2" (call_expression "(uint)((int)local_330 + (0x84 - (int)puVar32))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_330 + (0x84 - (int)puVar32))" ( (binary_expression "(int)local_330 + (0x84 - (int)puVar32)" (cast_expression "(int)local_330" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x84 - (int)puVar32)" ( (binary_expression "0x84 - (int)puVar32" number_literal - (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal)) ;) (for_statement "for (; uVar21 != 0; uVar21 = uVar21 - 1) {\n    *puVar32 = 0;\n    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;\n  }" for ( ; (binary_expression "uVar21 != 0" identifier != number_literal) ; (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar32 = 0;\n    puVar32 = puVar32 + (uint)bVar38 * -2 + 1;\n  }" { (expression_statement "*puVar32 = 0;" (assignment_expression "*puVar32 = 0" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (expression_statement "puVar32 = puVar32 + (uint)bVar38 * -2 + 1;" (assignment_expression "puVar32 = puVar32 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "puVar32 + (uint)bVar38 * -2 + 1" (binary_expression "puVar32 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)&(local_330->stat).st_ino = 0;" (assignment_expression "*(undefined4 *)&(local_330->stat).st_ino = 0" (pointer_expression "*(undefined4 *)&(local_330->stat).st_ino" * (cast_expression "(undefined4 *)&(local_330->stat).st_ino" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_330->stat).st_ino" & (field_expression "(local_330->stat).st_ino" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(local_330->stat).st_ino + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(local_330->stat).st_ino + 4)" * (cast_expression "(undefined4 *)((int)&(local_330->stat).st_ino + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_ino + 4)" ( (binary_expression "(int)&(local_330->stat).st_ino + 4" (cast_expression "(int)&(local_330->stat).st_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_ino" & (field_expression "(local_330->stat).st_ino" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar35 = cwd_some_quoted == false;" (assignment_expression "bVar35 = cwd_some_quoted == false" identifier = (binary_expression "cwd_some_quoted == false" identifier == false)) ;) (expression_statement "local_330->quoted = -1;" (assignment_expression "local_330->quoted = -1" (field_expression "local_330->quoted" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_330->filetype = local_33c;" (assignment_expression "local_330->filetype = local_33c" (field_expression "local_330->filetype" identifier -> field_identifier) = identifier) ;) (if_statement "if ((bVar35) && (align_variable_outer_quotes != false)) {\n    _Var9 = needs_quoting((char *)local_338);\n    local_330->quoted = (uint)_Var9;\n    if (_Var9) {\n      cwd_some_quoted = true;\n    }\n  }" if (parenthesized_expression "((bVar35) && (align_variable_outer_quotes != false))" ( (binary_expression "(bVar35) && (align_variable_outer_quotes != false)" (parenthesized_expression "(bVar35)" ( identifier )) && (parenthesized_expression "(align_variable_outer_quotes != false)" ( (binary_expression "align_variable_outer_quotes != false" identifier != false) ))) )) (compound_statement "{\n    _Var9 = needs_quoting((char *)local_338);\n    local_330->quoted = (uint)_Var9;\n    if (_Var9) {\n      cwd_some_quoted = true;\n    }\n  }" { (expression_statement "_Var9 = needs_quoting((char *)local_338);" (assignment_expression "_Var9 = needs_quoting((char *)local_338)" identifier = (call_expression "needs_quoting((char *)local_338)" identifier (argument_list "((char *)local_338)" ( (cast_expression "(char *)local_338" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_330->quoted = (uint)_Var9;" (assignment_expression "local_330->quoted = (uint)_Var9" (field_expression "local_330->quoted" identifier -> field_identifier) = (cast_expression "(uint)_Var9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (_Var9) {\n      cwd_some_quoted = true;\n    }" if (parenthesized_expression "(_Var9)" ( identifier )) (compound_statement "{\n      cwd_some_quoted = true;\n    }" { (expression_statement "cwd_some_quoted = true;" (assignment_expression "cwd_some_quoted = true" identifier = true) ;) })) })) (expression_statement "local_34c = CONCAT31(local_34c._1_3_,print_hyperlink);" (assignment_expression "local_34c = CONCAT31(local_34c._1_3_,print_hyperlink)" identifier = (call_expression "CONCAT31(local_34c._1_3_,print_hyperlink)" identifier (argument_list "(local_34c._1_3_,print_hyperlink)" ( (field_expression "local_34c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((char)local_344 == '\0') {\n    if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }\n  }\n  else {\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }\n  }" { (if_statement "if (print_hyperlink != false) {\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" if (parenthesized_expression "(print_hyperlink != false)" ( (binary_expression "print_hyperlink != false" identifier != false) )) (compound_statement "{\n      cVar37 = (char)*local_338;\n      if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" { (expression_statement "cVar37 = (char)*local_338;" (assignment_expression "cVar37 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (if_statement "if (cVar37 == '/') {\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }\n      else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }" if (parenthesized_expression "(cVar37 == '/')" ( (binary_expression "cVar37 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar26 = auStack_35c;" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }" else (compound_statement "{\n        cVar23 = (char)local_348->st_dev;\n        local_334 = local_338;\n        puVar26 = auStack_35c;\n        if (cVar23 != '\0') goto LAB_00018b15;\n      }" { (expression_statement "cVar23 = (char)local_348->st_dev;" (assignment_expression "cVar23 = (char)local_348->st_dev" identifier = (cast_expression "(char)local_348->st_dev" ( (type_descriptor "char" primitive_type) ) (field_expression "local_348->st_dev" identifier -> field_identifier))) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar26 = auStack_35c;" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) ;) (if_statement "if (cVar23 != '\0') goto LAB_00018b15;" if (parenthesized_expression "(cVar23 != '\0')" ( (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001896e;" goto statement_identifier ;) })) (if_statement "if ((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))) {\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" if (parenthesized_expression "((format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9))))))))" ( (binary_expression "(format_needs_stat != false) ||\n       (((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))" (parenthesized_expression "(format_needs_stat != false)" ( (binary_expression "format_needs_stat != false" identifier != false) )) || (parenthesized_expression "(((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))))" ( (parenthesized_expression "((local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9))))))" ( (binary_expression "(local_33c == directory && (print_with_color != false)) &&\n        ((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))" (parenthesized_expression "(local_33c == directory && (print_with_color != false))" ( (binary_expression "local_33c == directory && (print_with_color != false)" (binary_expression "local_33c == directory" identifier == identifier) && (parenthesized_expression "(print_with_color != false)" ( (binary_expression "print_with_color != false" identifier != false) ))) )) && (parenthesized_expression "((_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))))" ( (parenthesized_expression "(_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9))))" ( (comma_expression "_Var9 = is_colored(C_OTHER_WRITABLE), _Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))" (assignment_expression "_Var9 = is_colored(C_OTHER_WRITABLE)" identifier = (call_expression "is_colored(C_OTHER_WRITABLE)" identifier (argument_list "(C_OTHER_WRITABLE)" ( identifier )))) , (binary_expression "_Var9 ||\n         ((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))" identifier || (parenthesized_expression "((_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)))" ( (parenthesized_expression "(_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9))" ( (comma_expression "_Var9 = is_colored(C_STICKY), _Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)" (assignment_expression "_Var9 = is_colored(C_STICKY)" identifier = (call_expression "is_colored(C_STICKY)" identifier (argument_list "(C_STICKY)" ( identifier )))) , (binary_expression "_Var9 ||\n          (_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)" identifier || (parenthesized_expression "(_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9)" ( (comma_expression "_Var9 = is_colored(C_STICKY_OTHER_WRITABLE), _Var9" (assignment_expression "_Var9 = is_colored(C_STICKY_OTHER_WRITABLE)" identifier = (call_expression "is_colored(C_STICKY_OTHER_WRITABLE)" identifier (argument_list "(C_STICKY_OTHER_WRITABLE)" ( identifier )))) , identifier) )))) )) )))) )) ))) )) ))) )) (compound_statement "{\nLAB_00018410:\n      cVar37 = (char)*local_338;\n      if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;\n      local_348 = &local_330->stat;\n      if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" { (labeled_statement "LAB_00018410:\n      cVar37 = (char)*local_338;" statement_identifier : (expression_statement "cVar37 = (char)*local_338;" (assignment_expression "cVar37 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;)) (if_statement "if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')) goto LAB_00018b15;" if (parenthesized_expression "((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0'))" ( (binary_expression "(cVar37 != '/') && (cVar23 = (char)local_348->st_dev, cVar23 != '\0')" (parenthesized_expression "(cVar37 != '/')" ( (binary_expression "cVar37 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar23 = (char)local_348->st_dev, cVar23 != '\0')" ( (comma_expression "cVar23 = (char)local_348->st_dev, cVar23 != '\0'" (assignment_expression "cVar23 = (char)local_348->st_dev" identifier = (cast_expression "(char)local_348->st_dev" ( (type_descriptor "char" primitive_type) ) (field_expression "local_348->st_dev" identifier -> field_identifier))) , (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) (expression_statement "local_348 = &local_330->stat;" (assignment_expression "local_348 = &local_330->stat" identifier = (pointer_expression "&local_330->stat" & (field_expression "local_330->stat" identifier -> field_identifier))) ;) (if_statement "if ((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)) {\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }" if (parenthesized_expression "((dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS))" ( (binary_expression "(dereference < DEREF_COMMAND_LINE_ARGUMENTS) || (dereference < DEREF_ALWAYS)" (parenthesized_expression "(dereference < DEREF_COMMAND_LINE_ARGUMENTS)" ( (binary_expression "dereference < DEREF_COMMAND_LINE_ARGUMENTS" identifier < identifier) )) || (parenthesized_expression "(dereference < DEREF_ALWAYS)" ( (binary_expression "dereference < DEREF_ALWAYS" identifier < identifier) ))) )) (compound_statement "{\n        local_334 = local_338;\n        puVar27 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar27 = auStack_35c;" (assignment_expression "puVar27 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }" else (compound_statement "{\n        local_334 = local_338;\n        if (dereference == DEREF_ALWAYS) goto LAB_00018210;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (if_statement "if (dereference == DEREF_ALWAYS) goto LAB_00018210;" if (parenthesized_expression "(dereference == DEREF_ALWAYS)" ( (binary_expression "dereference == DEREF_ALWAYS" identifier == identifier) )) (goto_statement "goto LAB_00018210;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (if_statement "if (print_inode != false) {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" if (parenthesized_expression "(print_inode != false)" ( (binary_expression "print_inode != false" identifier != false) )) (compound_statement "{\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == symbolic_link) || (local_33c == unknown)) {\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }" if (parenthesized_expression "((local_33c == symbolic_link) || (local_33c == unknown))" ( (binary_expression "(local_33c == symbolic_link) || (local_33c == unknown)" (parenthesized_expression "(local_33c == symbolic_link)" ( (binary_expression "local_33c == symbolic_link" identifier == identifier) )) || (parenthesized_expression "(local_33c == unknown)" ( (binary_expression "local_33c == unknown" identifier == identifier) ))) )) (compound_statement "{\nLAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }\n      }" { (labeled_statement "LAB_00018f48:\n        if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }" statement_identifier : (if_statement "if ((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))) {\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }" if (parenthesized_expression "((dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false))))" ( (binary_expression "(dereference != DEREF_ALWAYS) &&\n           (((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))" (parenthesized_expression "(dereference != DEREF_ALWAYS)" ( (binary_expression "dereference != DEREF_ALWAYS" identifier != identifier) )) && (parenthesized_expression "(((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)))" ( (parenthesized_expression "((color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false))" ( (binary_expression "(color_symlink_as_referent == false && (check_symlink_color == false)) &&\n            (print_inode == false)" (parenthesized_expression "(color_symlink_as_referent == false && (check_symlink_color == false))" ( (binary_expression "color_symlink_as_referent == false && (check_symlink_color == false)" (binary_expression "color_symlink_as_referent == false" identifier == false) && (parenthesized_expression "(check_symlink_color == false)" ( (binary_expression "check_symlink_color == false" identifier == false) ))) )) && (parenthesized_expression "(print_inode == false)" ( (binary_expression "print_inode == false" identifier == false) ))) )) ))) )) (compound_statement "{\n          if (format_needs_type == false) goto LAB_00018fd0;\n          if (local_33c != unknown) goto LAB_000183a9;\n        }" { (if_statement "if (format_needs_type == false) goto LAB_00018fd0;" if (parenthesized_expression "(format_needs_type == false)" ( (binary_expression "format_needs_type == false" identifier == false) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (if_statement "if (local_33c != unknown) goto LAB_000183a9;" if (parenthesized_expression "(local_33c != unknown)" ( (binary_expression "local_33c != unknown" identifier != identifier) )) (goto_statement "goto LAB_000183a9;" goto statement_identifier ;)) }))) })) (goto_statement "goto LAB_00018410;" goto statement_identifier ;) })) (if_statement "if (format_needs_type == false) {\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }\n    else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }" if (parenthesized_expression "(format_needs_type == false)" ( (binary_expression "format_needs_type == false" identifier == false) )) (compound_statement "{\nLAB_00018fd0:\n      uVar28 = 0;\n      uVar33 = 0;\n    }" { (labeled_statement "LAB_00018fd0:\n      uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }" else (compound_statement "{\n      if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;\n      if (format_needs_type == false) goto LAB_00018fd0;\nLAB_000183a9:\n      uVar28 = 0;\n      uVar33 = 0;\n      puVar26 = auStack_35c;\n      if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == symbolic_link) || (local_33c == unknown)) goto LAB_00018f48;" if (parenthesized_expression "((local_33c == symbolic_link) || (local_33c == unknown))" ( (binary_expression "(local_33c == symbolic_link) || (local_33c == unknown)" (parenthesized_expression "(local_33c == symbolic_link)" ( (binary_expression "local_33c == symbolic_link" identifier == identifier) )) || (parenthesized_expression "(local_33c == unknown)" ( (binary_expression "local_33c == unknown" identifier == identifier) ))) )) (goto_statement "goto LAB_00018f48;" goto statement_identifier ;)) (if_statement "if (format_needs_type == false) goto LAB_00018fd0;" if (parenthesized_expression "(format_needs_type == false)" ( (binary_expression "format_needs_type == false" identifier == false) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (labeled_statement "LAB_000183a9:\n      uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "puVar26 = auStack_35c;" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) ;) (if_statement "if ((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))) goto LAB_00018410;" if (parenthesized_expression "((local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9))))))))))" ( (binary_expression "(local_33c == normal) &&\n         ((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))" (parenthesized_expression "(local_33c == normal)" ( (binary_expression "local_33c == normal" identifier == identifier) )) && (parenthesized_expression "((indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))))" ( (parenthesized_expression "(indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9))))))))" ( (binary_expression "indicator_style == classify ||\n          ((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))" (binary_expression "indicator_style == classify" identifier == identifier) || (parenthesized_expression "((puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))))" ( (parenthesized_expression "(puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9))))))" ( (comma_expression "puVar26 = auStack_35c, print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) , (binary_expression "print_with_color != false &&\n           (((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))" (binary_expression "print_with_color != false" identifier != false) && (parenthesized_expression "(((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))))" ( (parenthesized_expression "((_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9))))" ( (binary_expression "(_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)) ||\n            ((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))" (parenthesized_expression "(_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9))" ( (comma_expression "_Var9 = is_colored(C_EXEC), _Var9 || (_Var9 = is_colored(C_SETUID), _Var9)" (assignment_expression "_Var9 = is_colored(C_EXEC)" identifier = (call_expression "is_colored(C_EXEC)" identifier (argument_list "(C_EXEC)" ( identifier )))) , (binary_expression "_Var9 || (_Var9 = is_colored(C_SETUID), _Var9)" identifier || (parenthesized_expression "(_Var9 = is_colored(C_SETUID), _Var9)" ( (comma_expression "_Var9 = is_colored(C_SETUID), _Var9" (assignment_expression "_Var9 = is_colored(C_SETUID)" identifier = (call_expression "is_colored(C_SETUID)" identifier (argument_list "(C_SETUID)" ( identifier )))) , identifier) )))) )) || (parenthesized_expression "((_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)))" ( (parenthesized_expression "(_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9))" ( (comma_expression "_Var9 = is_colored(C_SETGID), _Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)" (assignment_expression "_Var9 = is_colored(C_SETGID)" identifier = (call_expression "is_colored(C_SETGID)" identifier (argument_list "(C_SETGID)" ( identifier )))) , (binary_expression "_Var9 ||\n             (_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)" identifier || (parenthesized_expression "(_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9)" ( (comma_expression "_Var9 = is_colored(C_CAP), puVar26 = auStack_35c, _Var9" (assignment_expression "_Var9 = is_colored(C_CAP)" identifier = (call_expression "is_colored(C_CAP)" identifier (argument_list "(C_CAP)" ( identifier )))) , (comma_expression "puVar26 = auStack_35c, _Var9" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) , identifier)) )))) )) ))) )) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00018410;" goto statement_identifier ;)) }))) }) (else_clause "else {\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }" else (compound_statement "{\n    cVar37 = (char)*local_338;\n    local_334 = local_338;\n    puVar26 = auStack_35c;\n    if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }\n    DVar7 = dereference;\n    local_348 = &local_330->stat;\n    puVar27 = puVar26;\n    if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;\n    if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    local_330->stat_ok = true;\n    if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }\n    pfVar8 = local_330;\n    if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }\n    uVar28 = (undefined4)(local_330->stat).st_blocks;\n    uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);\n    if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }\n    file_size_width = iVar10;\n    if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }\n  }" { (expression_statement "cVar37 = (char)*local_338;" (assignment_expression "cVar37 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar26 = auStack_35c;" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) ;) (if_statement "if ((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       ) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" if (parenthesized_expression "((cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')\n       )" ( (binary_expression "(cVar37 != '/') && (cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')" (parenthesized_expression "(cVar37 != '/')" ( (binary_expression "cVar37 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0')" ( (comma_expression "cVar23 = (char)local_348->st_dev, puVar26 = auStack_35c, cVar23 != '\0'" (assignment_expression "cVar23 = (char)local_348->st_dev" identifier = (cast_expression "(char)local_348->st_dev" ( (type_descriptor "char" primitive_type) ) (field_expression "local_348->st_dev" identifier -> field_identifier))) , (comma_expression "puVar26 = auStack_35c, cVar23 != '\0'" (assignment_expression "puVar26 = auStack_35c" identifier = identifier) , (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);\n      local_351 = cVar23;\n      sVar13 = strlen((char *)local_338);\n      psVar30 = local_348;\n      sVar16 = strlen((char *)local_348);\n      cVar23 = local_351;\n      cVar37 = *(char *)((int)&psVar30->st_dev + 1);\n      cVar20 = (char)local_350;\n      iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);\n      puVar26 = auStack_35c + iVar10;\n      local_334 = (uint *)((int)&local_350 + iVar10);\n      if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }\n      puVar19 = local_338;\n      if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" { (labeled_statement "LAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);" statement_identifier : (expression_statement "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37);" (assignment_expression "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar37)" identifier = (cast_expression "(uint *)CONCAT31(local_350._1_3_,cVar37)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_350._1_3_,cVar37)" identifier (argument_list "(local_350._1_3_,cVar37)" ( (field_expression "local_350._1_3_" identifier . field_identifier) , identifier ))))) ;)) (expression_statement "local_351 = cVar23;" (assignment_expression "local_351 = cVar23" identifier = identifier) ;) (expression_statement "sVar13 = strlen((char *)local_338);" (assignment_expression "sVar13 = strlen((char *)local_338)" identifier = (call_expression "strlen((char *)local_338)" identifier (argument_list "((char *)local_338)" ( (cast_expression "(char *)local_338" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "psVar30 = local_348;" (assignment_expression "psVar30 = local_348" identifier = identifier) ;) (expression_statement "sVar16 = strlen((char *)local_348);" (assignment_expression "sVar16 = strlen((char *)local_348)" identifier = (call_expression "strlen((char *)local_348)" identifier (argument_list "((char *)local_348)" ( (cast_expression "(char *)local_348" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "cVar23 = local_351;" (assignment_expression "cVar23 = local_351" identifier = identifier) ;) (expression_statement "cVar37 = *(char *)((int)&psVar30->st_dev + 1);" (assignment_expression "cVar37 = *(char *)((int)&psVar30->st_dev + 1)" identifier = (pointer_expression "*(char *)((int)&psVar30->st_dev + 1)" * (cast_expression "(char *)((int)&psVar30->st_dev + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar30->st_dev + 1)" ( (binary_expression "(int)&psVar30->st_dev + 1" (cast_expression "(int)&psVar30->st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar30->st_dev" & (field_expression "psVar30->st_dev" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "cVar20 = (char)local_350;" (assignment_expression "cVar20 = (char)local_350" identifier = (cast_expression "(char)local_350" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0);" (assignment_expression "iVar10 = -(sVar13 + 0x1d + sVar16 & 0xfffffff0)" identifier = (unary_expression "-(sVar13 + 0x1d + sVar16 & 0xfffffff0)" - (parenthesized_expression "(sVar13 + 0x1d + sVar16 & 0xfffffff0)" ( (binary_expression "sVar13 + 0x1d + sVar16 & 0xfffffff0" (binary_expression "sVar13 + 0x1d + sVar16" (binary_expression "sVar13 + 0x1d" identifier + number_literal) + identifier) & number_literal) )))) ;) (expression_statement "puVar26 = auStack_35c + iVar10;" (assignment_expression "puVar26 = auStack_35c + iVar10" identifier = (binary_expression "auStack_35c + iVar10" identifier + identifier)) ;) (expression_statement "local_334 = (uint *)((int)&local_350 + iVar10);" (assignment_expression "local_334 = (uint *)((int)&local_350 + iVar10)" identifier = (cast_expression "(uint *)((int)&local_350 + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_350 + iVar10)" ( (binary_expression "(int)&local_350 + iVar10" (cast_expression "(int)&local_350" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_350" & identifier)) + identifier) )))) ;) (if_statement "if ((local_351 != '.') || (local_350 = local_334, cVar37 != '\0')) {\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }" if (parenthesized_expression "((local_351 != '.') || (local_350 = local_334, cVar37 != '\0'))" ( (binary_expression "(local_351 != '.') || (local_350 = local_334, cVar37 != '\0')" (parenthesized_expression "(local_351 != '.')" ( (binary_expression "local_351 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "(local_350 = local_334, cVar37 != '\0')" ( (comma_expression "local_350 = local_334, cVar37 != '\0'" (assignment_expression "local_350 = local_334" identifier = identifier) , (binary_expression "cVar37 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        local_351 = cVar20;\n        psVar30 = local_348;\n        puVar19 = local_334;\n        while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }\n        if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }\n      }" { (expression_statement "local_351 = cVar20;" (assignment_expression "local_351 = cVar20" identifier = identifier) ;) (expression_statement "psVar30 = local_348;" (assignment_expression "psVar30 = local_348" identifier = identifier) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (while_statement "while( true ) {\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          cVar2 = cVar37;\n          local_350 = (uint *)((int)puVar19 + 1);\n          psVar31 = (stat *)((int)&psVar30->st_dev + 1);\n          *(char *)puVar19 = cVar23;\n          if (cVar2 == '\0') break;\n          p_Var5 = &psVar30->st_dev;\n          psVar30 = psVar31;\n          puVar19 = local_350;\n          cVar37 = *(char *)((int)p_Var5 + 2);\n          cVar23 = cVar2;\n        }" { (expression_statement "cVar2 = cVar37;" (assignment_expression "cVar2 = cVar37" identifier = identifier) ;) (expression_statement "local_350 = (uint *)((int)puVar19 + 1);" (assignment_expression "local_350 = (uint *)((int)puVar19 + 1)" identifier = (cast_expression "(uint *)((int)puVar19 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 1)" ( (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar31 = (stat *)((int)&psVar30->st_dev + 1);" (assignment_expression "psVar31 = (stat *)((int)&psVar30->st_dev + 1)" identifier = (cast_expression "(stat *)((int)&psVar30->st_dev + 1)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar30->st_dev + 1)" ( (binary_expression "(int)&psVar30->st_dev + 1" (cast_expression "(int)&psVar30->st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar30->st_dev" & (field_expression "psVar30->st_dev" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(char *)puVar19 = cVar23;" (assignment_expression "*(char *)puVar19 = cVar23" (pointer_expression "*(char *)puVar19" * (cast_expression "(char *)puVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 ;)) (expression_statement "p_Var5 = &psVar30->st_dev;" (assignment_expression "p_Var5 = &psVar30->st_dev" identifier = (pointer_expression "&psVar30->st_dev" & (field_expression "psVar30->st_dev" identifier -> field_identifier))) ;) (expression_statement "psVar30 = psVar31;" (assignment_expression "psVar30 = psVar31" identifier = identifier) ;) (expression_statement "puVar19 = local_350;" (assignment_expression "puVar19 = local_350" identifier = identifier) ;) (expression_statement "cVar37 = *(char *)((int)p_Var5 + 2);" (assignment_expression "cVar37 = *(char *)((int)p_Var5 + 2)" identifier = (pointer_expression "*(char *)((int)p_Var5 + 2)" * (cast_expression "(char *)((int)p_Var5 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var5 + 2)" ( (binary_expression "(int)p_Var5 + 2" (cast_expression "(int)p_Var5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar23 = cVar2;" (assignment_expression "cVar23 = cVar2" identifier = identifier) ;) })) (if_statement "if ((local_348 < psVar31) && ((char)psVar30->st_dev != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }" if (parenthesized_expression "((local_348 < psVar31) && ((char)psVar30->st_dev != '/'))" ( (binary_expression "(local_348 < psVar31) && ((char)psVar30->st_dev != '/')" (parenthesized_expression "(local_348 < psVar31)" ( (binary_expression "local_348 < psVar31" identifier < identifier) )) && (parenthesized_expression "((char)psVar30->st_dev != '/')" ( (binary_expression "(char)psVar30->st_dev != '/'" (cast_expression "(char)psVar30->st_dev" ( (type_descriptor "char" primitive_type) ) (field_expression "psVar30->st_dev" identifier -> field_identifier)) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar19 + 2);\n        }" { (expression_statement "*(char *)local_350 = '/';" (assignment_expression "*(char *)local_350 = '/'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_350 = (uint *)((int)puVar19 + 2);" (assignment_expression "local_350 = (uint *)((int)puVar19 + 2)" identifier = (cast_expression "(uint *)((int)puVar19 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 2)" ( (binary_expression "(int)puVar19 + 2" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) (expression_statement "puVar19 = local_338;" (assignment_expression "puVar19 = local_338" identifier = identifier) ;) (if_statement "if (cVar20 != '\0') {\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }" if (parenthesized_expression "(cVar20 != '\0')" ( (binary_expression "cVar20 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');\n      }" { (do_statement "do {\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        } while (cVar20 != '\0');" do (compound_statement "{\n          puVar17 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar20;\n          cVar20 = *(char *)((int)puVar19 + 1);\n          local_350 = puVar17;\n          puVar19 = (uint *)((int)puVar19 + 1);\n        }" { (expression_statement "puVar17 = (uint *)((int)local_350 + 1);" (assignment_expression "puVar17 = (uint *)((int)local_350 + 1)" identifier = (cast_expression "(uint *)((int)local_350 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_350 + 1)" ( (binary_expression "(int)local_350 + 1" (cast_expression "(int)local_350" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)local_350 = cVar20;" (assignment_expression "*(char *)local_350 = cVar20" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "cVar20 = *(char *)((int)puVar19 + 1);" (assignment_expression "cVar20 = *(char *)((int)puVar19 + 1)" identifier = (pointer_expression "*(char *)((int)puVar19 + 1)" * (cast_expression "(char *)((int)puVar19 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 1)" ( (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_350 = puVar17;" (assignment_expression "local_350 = puVar17" identifier = identifier) ;) (expression_statement "puVar19 = (uint *)((int)puVar19 + 1);" (assignment_expression "puVar19 = (uint *)((int)puVar19 + 1)" identifier = (cast_expression "(uint *)((int)puVar19 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 1)" ( (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar20 != '\0')" ( (binary_expression "cVar20 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "*(char *)local_350 = '\0';" (assignment_expression "*(char *)local_350 = '\0'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }" if (parenthesized_expression "((char)local_34c != '\0')" ( (binary_expression "(char)local_34c != '\0'" (cast_expression "(char)local_34c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x1897e;\n      pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));\n      local_330->absolute_name = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }\n    }" { (labeled_statement "LAB_0001896e:\n      *(undefined4 *)(puVar26 + -0xc) = 2;" statement_identifier : (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x1897e;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x1897e" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc));" (assignment_expression "pcVar12 = canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc))" identifier = (call_expression "canonicalize_filename_mode\n                          (*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(canonicalize_mode_t *)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(canonicalize_mode_t *)(puVar26 + -0xc)" * (cast_expression "(canonicalize_mode_t *)(puVar26 + -0xc)" ( (type_descriptor "canonicalize_mode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (expression_statement "local_330->absolute_name = pcVar12;" (assignment_expression "local_330->absolute_name = pcVar12" (field_expression "local_330->absolute_name" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\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        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189a5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x189bb;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n      }" { (expression_statement "*(undefined4 *)(puVar26 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0xc) = "error canonicalizing %s";" (assignment_expression "*(char **)(puVar26 + -0xc) = "error canonicalizing %s"" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (string_literal ""error canonicalizing %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x189a5;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x189a5" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = (char *)dcgettext();" (assignment_expression "pcVar12 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (expression_statement "_Var9 = (_Bool)(char)local_344;" (assignment_expression "_Var9 = (_Bool)(char)local_344" identifier = (cast_expression "(_Bool)(char)local_344" ( (type_descriptor "_Bool" type_identifier) ) (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x189bb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x189bb" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "file_failure(_Var9,pcVar12,(char *)puVar19);" (call_expression "file_failure(_Var9,pcVar12,(char *)puVar19)" identifier (argument_list "(_Var9,pcVar12,(char *)puVar19)" ( identifier , identifier , (cast_expression "(char *)puVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) })) (expression_statement "DVar7 = dereference;" (assignment_expression "DVar7 = dereference" identifier = identifier) ;) (expression_statement "local_348 = &local_330->stat;" (assignment_expression "local_348 = &local_330->stat" identifier = (pointer_expression "&local_330->stat" & (field_expression "local_330->stat" identifier -> field_identifier))) ;) (expression_statement "puVar27 = puVar26;" (assignment_expression "puVar27 = puVar26" identifier = identifier) ;) (if_statement "if (dereference < DEREF_COMMAND_LINE_ARGUMENTS) goto LAB_00018470;" if (parenthesized_expression "(dereference < DEREF_COMMAND_LINE_ARGUMENTS)" ( (binary_expression "dereference < DEREF_COMMAND_LINE_ARGUMENTS" identifier < identifier) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (if_statement "if (dereference < DEREF_ALWAYS) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }\n    else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" if (parenthesized_expression "(dereference < DEREF_ALWAYS)" ( (binary_expression "dereference < DEREF_ALWAYS" identifier < identifier) )) (compound_statement "{\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }\n      *(stat **)(puVar26 + -8) = &local_330->stat;\n      *(uint **)(puVar26 + -0xc) = local_334;\n      *(undefined4 *)(puVar26 + -0x10) = 3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x189eb;\n      iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));\n      if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }\n      cVar37 = (char)local_344;\n    }" { (if_statement "if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;\n        cVar37 = '\0';\n        *(uint **)(puVar27 + -0xc) = local_334;\n        *(undefined4 *)(puVar27 + -0x10) = 3;\n        *(undefined4 *)(puVar27 + -0x14) = 0x18488;\n        iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));\n        puVar26 = puVar27;\n        goto joined_r0x0001848d;\n      }" { (labeled_statement "LAB_00018470:\n        *(stat **)(puVar27 + -8) = local_348;" statement_identifier : (expression_statement "*(stat **)(puVar27 + -8) = local_348;" (assignment_expression "*(stat **)(puVar27 + -8) = local_348" (pointer_expression "*(stat **)(puVar27 + -8)" * (cast_expression "(stat **)(puVar27 + -8)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar37 = '\0';" (assignment_expression "cVar37 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar27 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar27 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar27 + -0xc)" * (cast_expression "(uint **)(puVar27 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar27 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar27 + -0x10)" * (cast_expression "(undefined4 *)(puVar27 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar27 + -0x14) = 0x18488;" (assignment_expression "*(undefined4 *)(puVar27 + -0x14) = 0x18488" (pointer_expression "*(undefined4 *)(puVar27 + -0x14)" * (cast_expression "(undefined4 *)(puVar27 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x14)" ( (binary_expression "puVar27 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8));" (assignment_expression "iVar10 = __lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8))" identifier = (call_expression "__lxstat64(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8))" identifier (argument_list "(*(int *)(puVar27 + -0x10),*(char **)(puVar27 + -0xc),\n                            *(stat64 **)(puVar27 + -8))" ( (pointer_expression "*(int *)(puVar27 + -0x10)" * (cast_expression "(int *)(puVar27 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar27 + -0xc)" * (cast_expression "(char **)(puVar27 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar27 + -8)" * (cast_expression "(stat64 **)(puVar27 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar26 = puVar27;" (assignment_expression "puVar26 = puVar27" identifier = identifier) ;) (goto_statement "goto joined_r0x0001848d;" goto statement_identifier ;) })) (expression_statement "*(stat **)(puVar26 + -8) = &local_330->stat;" (assignment_expression "*(stat **)(puVar26 + -8) = &local_330->stat" (pointer_expression "*(stat **)(puVar26 + -8)" * (cast_expression "(stat **)(puVar26 + -8)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = (pointer_expression "&local_330->stat" & (field_expression "local_330->stat" identifier -> field_identifier))) ;) (expression_statement "*(uint **)(puVar26 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar26 + -0xc)" * (cast_expression "(uint **)(puVar26 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x189eb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x189eb" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8));" (assignment_expression "iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8))" identifier (argument_list "(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                         *(stat64 **)(puVar26 + -8))" ( (pointer_expression "*(int *)(puVar26 + -0x10)" * (cast_expression "(int *)(puVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar26 + -8)" * (cast_expression "(stat64 **)(puVar26 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (DVar7 != DEREF_COMMAND_LINE_ARGUMENTS) {\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" if (parenthesized_expression "(DVar7 != DEREF_COMMAND_LINE_ARGUMENTS)" ( (binary_expression "DVar7 != DEREF_COMMAND_LINE_ARGUMENTS" identifier != identifier) )) (compound_statement "{\n        if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" { (if_statement "if (iVar10 < 0) {\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar26 + -4) = 0x18f95;\n          piVar18 = __errno_location();\n          if (*piVar18 != 2) goto LAB_00018f9e;\n        }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18f95;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18f95" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar18 != 2) goto LAB_00018f9e;" if (parenthesized_expression "(*piVar18 != 2)" ( (binary_expression "*piVar18 != 2" (pointer_expression "*piVar18" * identifier) != number_literal) )) (goto_statement "goto LAB_00018f9e;" goto statement_identifier ;)) }) (else_clause "else {\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" else (compound_statement "{\n          local_34c = (local_330->stat).st_mode;\n          if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" { (expression_statement "local_34c = (local_330->stat).st_mode;" (assignment_expression "local_34c = (local_330->stat).st_mode" identifier = (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((local_34c & 0xf000) == 0x4000) goto LAB_00018a1e;" if (parenthesized_expression "((local_34c & 0xf000) == 0x4000)" ( (binary_expression "(local_34c & 0xf000) == 0x4000" (parenthesized_expression "(local_34c & 0xf000)" ( (binary_expression "local_34c & 0xf000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00018a1e;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (labeled_statement "LAB_00018a1e:\n      if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }" statement_identifier : (if_statement "if (iVar10 != 0) {\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018f9e:\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fb5;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18fc7;\n        file_failure(true,pcVar12,(char *)puVar19);\n        goto LAB_0001831b;\n      }" { (labeled_statement "LAB_00018f9e:\n        uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar26 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18fb5;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18fb5" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = (char *)dcgettext();" (assignment_expression "pcVar12 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18fc7;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18fc7" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "file_failure(true,pcVar12,(char *)puVar19);" (call_expression "file_failure(true,pcVar12,(char *)puVar19)" identifier (argument_list "(true,pcVar12,(char *)puVar19)" ( true , identifier , (cast_expression "(char *)puVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;) }))) (expression_statement "cVar37 = (char)local_344;" (assignment_expression "cVar37 = (char)local_344" identifier = (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" else (compound_statement "{\n      puVar25 = puVar26;\n      if (dereference != DEREF_ALWAYS) goto LAB_00018470;\nLAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;\n      cVar37 = '\x01';\n      *(uint **)(puVar25 + -0xc) = local_334;\n      *(undefined4 *)(puVar25 + -0x10) = 3;\n      *(undefined4 *)(puVar25 + -0x14) = 0x1822b;\n      iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));\n      puVar26 = puVar25;\njoined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" { (expression_statement "puVar25 = puVar26;" (assignment_expression "puVar25 = puVar26" identifier = identifier) ;) (if_statement "if (dereference != DEREF_ALWAYS) goto LAB_00018470;" if (parenthesized_expression "(dereference != DEREF_ALWAYS)" ( (binary_expression "dereference != DEREF_ALWAYS" identifier != identifier) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (labeled_statement "LAB_00018210:\n      *(stat **)(puVar25 + -8) = local_348;" statement_identifier : (expression_statement "*(stat **)(puVar25 + -8) = local_348;" (assignment_expression "*(stat **)(puVar25 + -8) = local_348" (pointer_expression "*(stat **)(puVar25 + -8)" * (cast_expression "(stat **)(puVar25 + -8)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -8)" ( (binary_expression "puVar25 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar37 = '\x01';" (assignment_expression "cVar37 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar25 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar25 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar25 + -0xc)" * (cast_expression "(uint **)(puVar25 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0xc)" ( (binary_expression "puVar25 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar25 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar25 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar25 + -0x10)" * (cast_expression "(undefined4 *)(puVar25 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x10)" ( (binary_expression "puVar25 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar25 + -0x14) = 0x1822b;" (assignment_expression "*(undefined4 *)(puVar25 + -0x14) = 0x1822b" (pointer_expression "*(undefined4 *)(puVar25 + -0x14)" * (cast_expression "(undefined4 *)(puVar25 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x14)" ( (binary_expression "puVar25 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8));" (assignment_expression "iVar10 = __xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8))" identifier (argument_list "(*(int *)(puVar25 + -0x10),*(char **)(puVar25 + -0xc),\n                         *(stat64 **)(puVar25 + -8))" ( (pointer_expression "*(int *)(puVar25 + -0x10)" * (cast_expression "(int *)(puVar25 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x10)" ( (binary_expression "puVar25 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar25 + -0xc)" * (cast_expression "(char **)(puVar25 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0xc)" ( (binary_expression "puVar25 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar25 + -8)" * (cast_expression "(stat64 **)(puVar25 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -8)" ( (binary_expression "puVar25 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar26 = puVar25;" (assignment_expression "puVar26 = puVar25" identifier = identifier) ;) (labeled_statement "joined_r0x0001848d:\n      if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" statement_identifier : (if_statement "if (iVar10 != 0) {\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar28 = 0;\n        uVar33 = 0;\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184aa;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x184be;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar26 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x184aa;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x184aa" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = (char *)dcgettext();" (assignment_expression "pcVar12 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (expression_statement "_Var9 = (_Bool)(char)local_344;" (assignment_expression "_Var9 = (_Bool)(char)local_344" identifier = (cast_expression "(_Bool)(char)local_344" ( (type_descriptor "_Bool" type_identifier) ) (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x184be;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x184be" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "file_failure(_Var9,pcVar12,(char *)puVar19);" (call_expression "file_failure(_Var9,pcVar12,(char *)puVar19)" identifier (argument_list "(_Var9,pcVar12,(char *)puVar19)" ( identifier , identifier , (cast_expression "(char *)puVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((char)local_344 != '\0') goto LAB_0001831b;" if (parenthesized_expression "((char)local_344 != '\0')" ( (binary_expression "(char)local_344 != '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;)) (goto_statement "goto LAB_000182fb;" goto statement_identifier ;) }))) }))) (expression_statement "local_330->stat_ok = true;" (assignment_expression "local_330->stat_ok = true" (field_expression "local_330->stat_ok" identifier -> field_identifier) = true) ;) (if_statement "if (((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)) {\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }" if (parenthesized_expression "(((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false))" ( (binary_expression "((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)) &&\n       (print_with_color != false)" (parenthesized_expression "((local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000))" ( (binary_expression "(local_33c == normal) ||\n        (local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)" (parenthesized_expression "(local_33c == normal)" ( (binary_expression "local_33c == normal" identifier == identifier) )) || (parenthesized_expression "(local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000)" ( (comma_expression "local_33c = (local_330->stat).st_mode, (local_33c & 0xf000) == 0x8000" (assignment_expression "local_33c = (local_330->stat).st_mode" identifier = (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(local_33c & 0xf000) == 0x8000" (parenthesized_expression "(local_33c & 0xf000)" ( (binary_expression "local_33c & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(print_with_color != false)" ( (binary_expression "print_with_color != false" identifier != false) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar26 + -4) = 0x188e7;\n      _Var9 = is_colored(C_CAP);\n      if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x188e7;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x188e7" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "_Var9 = is_colored(C_CAP);" (assignment_expression "_Var9 = is_colored(C_CAP)" identifier = (call_expression "is_colored(C_CAP)" identifier (argument_list "(C_CAP)" ( identifier )))) ;) (if_statement "if (_Var9) {\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }" if (parenthesized_expression "(_Var9)" ( identifier )) (compound_statement "{\n        iVar10 = (int)(local_330->stat).st_dev;\n        local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);\n        *(undefined4 *)(puVar26 + -4) = 0x18906;\n        piVar18 = __errno_location();\n        fVar11 = DAT_0003b39c;\n        iVar6 = unsupported_device_10505;\n        *piVar18 = 0x5f;\n        if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }\n        local_330->has_capability = false;\n      }" { (expression_statement "iVar10 = (int)(local_330->stat).st_dev;" (assignment_expression "iVar10 = (int)(local_330->stat).st_dev" identifier = (cast_expression "(int)(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4);" (assignment_expression "local_33c = *(filetype *)((int)&(local_330->stat).st_dev + 4)" identifier = (pointer_expression "*(filetype *)((int)&(local_330->stat).st_dev + 4)" * (cast_expression "(filetype *)((int)&(local_330->stat).st_dev + 4)" ( (type_descriptor "filetype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_dev + 4)" ( (binary_expression "(int)&(local_330->stat).st_dev + 4" (cast_expression "(int)&(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_dev" & (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18906;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18906" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "fVar11 = DAT_0003b39c;" (assignment_expression "fVar11 = DAT_0003b39c" identifier = identifier) ;) (expression_statement "iVar6 = unsupported_device_10505;" (assignment_expression "iVar6 = unsupported_device_10505" identifier = identifier) ;) (expression_statement "*piVar18 = 0x5f;" (assignment_expression "*piVar18 = 0x5f" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (if_statement "if (local_33c != fVar11 || iVar6 != iVar10) {\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }" if (parenthesized_expression "(local_33c != fVar11 || iVar6 != iVar10)" ( (binary_expression "local_33c != fVar11 || iVar6 != iVar10" (binary_expression "local_33c != fVar11" identifier != identifier) || (binary_expression "iVar6 != iVar10" identifier != identifier)) )) (compound_statement "{\n          DAT_0003b39c = local_33c;\n          unsupported_device_10505 = iVar10;\n        }" { (expression_statement "DAT_0003b39c = local_33c;" (assignment_expression "DAT_0003b39c = local_33c" identifier = identifier) ;) (expression_statement "unsupported_device_10505 = iVar10;" (assignment_expression "unsupported_device_10505 = iVar10" identifier = identifier) ;) })) (expression_statement "local_330->has_capability = false;" (assignment_expression "local_330->has_capability = false" (field_expression "local_330->has_capability" identifier -> field_identifier) = false) ;) })) })) (expression_statement "pfVar8 = local_330;" (assignment_expression "pfVar8 = local_330" identifier = identifier) ;) (if_statement "if ((format == long_format) || (print_scontext != false)) {\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }\n    else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }" if (parenthesized_expression "((format == long_format) || (print_scontext != false))" ( (binary_expression "(format == long_format) || (print_scontext != false)" (parenthesized_expression "(format == long_format)" ( (binary_expression "format == long_format" identifier == identifier) )) || (parenthesized_expression "(print_scontext != false)" ( (binary_expression "print_scontext != false" identifier != false) ))) )) (compound_statement "{\n      if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\n      if (format != long_format) goto LAB_00018da0;\nLAB_000187b9:\n      pfVar8 = local_330;\n      *(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;\n      *(uint **)(puVar26 + -0x10) = local_334;\n      *(undefined4 *)(puVar26 + -0x14) = 0x187d0;\n      pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));\n      pfVar8->linkname = pcVar12;\n      if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }\n      *(char **)(puVar26 + -0x10) = pcVar14;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18899;\n      free(*(void **)(puVar26 + -0x10));\n      local_334 = (uint *)(local_330->stat).st_mode;\n      fVar11 = (uint)local_334 & 0xf000;\n      if (fVar11 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330->filetype = symbolic_link;\n    }" { (if_statement "if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493) {\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }" if (parenthesized_expression "(*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493)" ( (binary_expression "*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394 &&\n          (int)(local_330->stat).st_dev == unsupported_device_10493" (binary_expression "*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b394" (pointer_expression "*(int *)((int)&(local_330->stat).st_dev + 4)" * (cast_expression "(int *)((int)&(local_330->stat).st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_dev + 4)" ( (binary_expression "(int)&(local_330->stat).st_dev + 4" (cast_expression "(int)&(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_dev" & (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) == identifier) && (binary_expression "(int)(local_330->stat).st_dev == unsupported_device_10493" (cast_expression "(int)(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) == identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar26 + -4) = 0x18eca;\n        piVar18 = __errno_location();\n        *piVar18 = 0x5f;\n        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;\nLAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        cVar37 = false;\nLAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }\n        any_has_acl = (_Bool)cVar37;\n        local_330->acl_type = aVar22;\n        if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18eca;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18eca" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar18 = 0x5f;" (assignment_expression "*piVar18 = 0x5f" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;" (assignment_expression "pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT" (field_expression "pfVar8->scontext" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00018ee0:\n        if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }" statement_identifier : (if_statement "if (format != long_format) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "(format != long_format)" ( (binary_expression "format != long_format" identifier != identifier) )) (compound_statement "{\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330->acl_type = ACL_T_NONE;" (assignment_expression "local_330->acl_type = ACL_T_NONE" (field_expression "local_330->acl_type" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) }))) (expression_statement "cVar37 = false;" (assignment_expression "cVar37 = false" identifier = false) ;) (labeled_statement "LAB_00018ca7:\n        if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }" statement_identifier : (if_statement "if (*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499) {\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }\n        else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }" if (parenthesized_expression "(*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499)" ( (binary_expression "*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c &&\n            (int)(local_330->stat).st_dev == unsupported_device_10499" (binary_expression "*(int *)((int)&(local_330->stat).st_dev + 4) == DAT_0003b38c" (pointer_expression "*(int *)((int)&(local_330->stat).st_dev + 4)" * (cast_expression "(int *)((int)&(local_330->stat).st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_dev + 4)" ( (binary_expression "(int)&(local_330->stat).st_dev + 4" (cast_expression "(int)&(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_dev" & (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) == identifier) && (binary_expression "(int)(local_330->stat).st_dev == unsupported_device_10499" (cast_expression "(int)(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) == identifier)) )) (compound_statement "{\n          *piVar18 = 0x5f;\n          uVar21 = 0;\nLAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;\n          if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }\n        }" { (expression_statement "*piVar18 = 0x5f;" (assignment_expression "*piVar18 = 0x5f" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001900a:\n          aVar22 = ACL_T_LSM_CONTEXT_ONLY;" statement_identifier : (expression_statement "aVar22 = ACL_T_LSM_CONTEXT_ONLY;" (assignment_expression "aVar22 = ACL_T_LSM_CONTEXT_ONLY" identifier = identifier) ;)) (if_statement "if ((bool)cVar37 == false) {\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }" if (parenthesized_expression "((bool)cVar37 == false)" ( (binary_expression "(bool)cVar37 == false" (cast_expression "(bool)cVar37" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n            aVar22 = ACL_T_NONE;\n            cVar37 = any_has_acl;\n          }" { (expression_statement "aVar22 = ACL_T_NONE;" (assignment_expression "aVar22 = ACL_T_NONE" identifier = identifier) ;) (expression_statement "cVar37 = any_has_acl;" (assignment_expression "cVar37 = any_has_acl" identifier = identifier) ;) })) }) (else_clause "else {\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }" else (compound_statement "{\n          *piVar18 = 0;\n          *(stat **)(puVar26 + -0xc) = local_348;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ce1;\n          uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));\n          if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }\n          uVar21 = 0;\n          aVar22 = ACL_T_YES;\n          cVar37 = '\x01';\n        }" { (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "*(stat **)(puVar26 + -0xc) = local_348;" (assignment_expression "*(stat **)(puVar26 + -0xc) = local_348" (pointer_expression "*(stat **)(puVar26 + -0xc)" * (cast_expression "(stat **)(puVar26 + -0xc)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18ce1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18ce1" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc));" (assignment_expression "uVar21 = file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc))" identifier = (call_expression "file_has_acl(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(stat **)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(stat **)(puVar26 + -0xc)" * (cast_expression "(stat **)(puVar26 + -0xc)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)uVar21 < 1) {\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = uVar21 >> 0x1f;\n            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }\n            goto LAB_0001900a;\n          }" { (expression_statement "uVar21 = uVar21 >> 0x1f;" (assignment_expression "uVar21 = uVar21 >> 0x1f" identifier = (binary_expression "uVar21 >> 0x1f" identifier >> number_literal)) ;) (if_statement "if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }" if (parenthesized_expression "(((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f))" ( (binary_expression "((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)" (parenthesized_expression "((*piVar18 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(*piVar18 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(*piVar18 - 0x16U & 0xffffffef)" ( (binary_expression "*piVar18 - 0x16U & 0xffffffef" (binary_expression "*piVar18 - 0x16U" (pointer_expression "*piVar18" * identifier) - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*piVar18 == 0x5f)" ( (binary_expression "*piVar18 == 0x5f" (pointer_expression "*piVar18" * identifier) == number_literal) ))) )) (compound_statement "{\n              unsupported_device_10499 = (int)(local_330->stat).st_dev;\n              DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);\n            }" { (expression_statement "unsupported_device_10499 = (int)(local_330->stat).st_dev;" (assignment_expression "unsupported_device_10499 = (int)(local_330->stat).st_dev" identifier = (cast_expression "(int)(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4);" (assignment_expression "DAT_0003b38c = *(int *)((int)&(local_330->stat).st_dev + 4)" identifier = (pointer_expression "*(int *)((int)&(local_330->stat).st_dev + 4)" * (cast_expression "(int *)((int)&(local_330->stat).st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_dev + 4)" ( (binary_expression "(int)&(local_330->stat).st_dev + 4" (cast_expression "(int)&(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_dev" & (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) })) (goto_statement "goto LAB_0001900a;" goto statement_identifier ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "aVar22 = ACL_T_YES;" (assignment_expression "aVar22 = ACL_T_YES" identifier = identifier) ;) (expression_statement "cVar37 = '\x01';" (assignment_expression "cVar37 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })))) (expression_statement "any_has_acl = (_Bool)cVar37;" (assignment_expression "any_has_acl = (_Bool)cVar37" identifier = (cast_expression "(_Bool)cVar37" ( (type_descriptor "_Bool" type_identifier) ) identifier)) ;) (expression_statement "local_330->acl_type = aVar22;" (assignment_expression "local_330->acl_type = aVar22" (field_expression "local_330->acl_type" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar21 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;\n          *(undefined4 *)(puVar26 + -0xc) = 3;\n          *(undefined4 *)(puVar26 + -0x10) = 0;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18ad4;\n          pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));\n          *(undefined4 *)(puVar26 + -0x14) = 0x18adb;\n          piVar18 = __errno_location();\n          *(char **)(puVar26 + -0x14) = pcVar12;\n          *(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar26 + -0x1c) = *piVar18;\n          *(undefined4 *)(puVar26 + -0x20) = 0;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18aec;\n          error();\n        }" { (labeled_statement "LAB_00018ac2:\n          *(uint **)(puVar26 + -8) = local_334;" statement_identifier : (expression_statement "*(uint **)(puVar26 + -8) = local_334;" (assignment_expression "*(uint **)(puVar26 + -8) = local_334" (pointer_expression "*(uint **)(puVar26 + -8)" * (cast_expression "(uint **)(puVar26 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 3;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 3" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18ad4;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18ad4" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8));" (assignment_expression "pcVar12 = quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8))" identifier = (call_expression "quotearg_n_style_colon\n                              (*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8))" identifier (argument_list "(*(int *)(puVar26 + -0x10),*(quoting_style *)(puVar26 + -0xc),\n                               *(char **)(puVar26 + -8))" ( (pointer_expression "*(int *)(puVar26 + -0x10)" * (cast_expression "(int *)(puVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(quoting_style *)(puVar26 + -0xc)" * (cast_expression "(quoting_style *)(puVar26 + -0xc)" ( (type_descriptor "quoting_style *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18adb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18adb" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char **)(puVar26 + -0x14) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x14) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x14)" * (cast_expression "(char **)(puVar26 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar26 + -0x18) = &DAT_0002fff0;" (assignment_expression "*(undefined **)(puVar26 + -0x18) = &DAT_0002fff0" (pointer_expression "*(undefined **)(puVar26 + -0x18)" * (cast_expression "(undefined **)(puVar26 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = (pointer_expression "&DAT_0002fff0" & identifier)) ;) (expression_statement "*(int *)(puVar26 + -0x1c) = *piVar18;" (assignment_expression "*(int *)(puVar26 + -0x1c) = *piVar18" (pointer_expression "*(int *)(puVar26 + -0x1c)" * (cast_expression "(int *)(puVar26 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x1c)" ( (binary_expression "puVar26 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x20)" * (cast_expression "(undefined4 *)(puVar26 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x24) = 0x18aec;" (assignment_expression "*(undefined4 *)(puVar26 + -0x24) = 0x18aec" (pointer_expression "*(undefined4 *)(puVar26 + -0x24)" * (cast_expression "(undefined4 *)(puVar26 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x24)" ( (binary_expression "puVar26 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "error();" (call_expression "error()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }" else (compound_statement "{\n        if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }\n        *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n        *(uint **)(puVar26 + -0x10) = local_334;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18a47;\n        iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));\n        if (iVar10 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar36 = iVar10 == 0;\n        bVar35 = false;\n        iVar10 = 10;\n        pbVar29 = (byte *)"unlabeled";\n        pbVar34 = (byte *)local_330->scontext;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);\n        cVar37 = (!bVar35 && !bVar36) != bVar35;\n        if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }\n        local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;\n        any_has_acl = true;\n      }" { (if_statement "if (cVar37 != '\0') {\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }" if (parenthesized_expression "(cVar37 != '\0')" ( (binary_expression "cVar37 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(char ***)(puVar26 + -0xc) = &local_330->scontext;\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18732;\n          iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));\n          if (-1 < iVar10) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;\n          piVar18 = __errno_location();\n          iVar10 = *piVar18;\n          bVar35 = iVar10 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar35);\n          if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }\n          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;\n          if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018ac2;\n        }" { (expression_statement "*(char ***)(puVar26 + -0xc) = &local_330->scontext;" (assignment_expression "*(char ***)(puVar26 + -0xc) = &local_330->scontext" (pointer_expression "*(char ***)(puVar26 + -0xc)" * (cast_expression "(char ***)(puVar26 + -0xc)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_330->scontext" & (field_expression "local_330->scontext" identifier -> field_identifier))) ;) (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18732;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18732" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc));" (assignment_expression "iVar10 = rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc))" identifier = (call_expression "rpl_getfilecon(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),\n                                  *(security_context_t **)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(security_context_t **)(puVar26 + -0xc)" * (cast_expression "(security_context_t **)(puVar26 + -0xc)" ( (type_descriptor "security_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (-1 < iVar10) goto LAB_0001873d;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (goto_statement "goto LAB_0001873d;" goto statement_identifier ;)) (labeled_statement "LAB_00018a52:\n          *(undefined4 *)(puVar26 + -4) = 0x18a57;" statement_identifier : (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18a57;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18a57" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar18;" (assignment_expression "iVar10 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "bVar35 = iVar10 == 0x5f;" (assignment_expression "bVar35 = iVar10 == 0x5f" identifier = (binary_expression "iVar10 == 0x5f" identifier == number_literal)) ;) (expression_statement "local_33c = CONCAT31(local_33c._1_3_,bVar35);" (assignment_expression "local_33c = CONCAT31(local_33c._1_3_,bVar35)" identifier = (call_expression "CONCAT31(local_33c._1_3_,bVar35)" identifier (argument_list "(local_33c._1_3_,bVar35)" ( (field_expression "local_33c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if (((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)) {\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }" if (parenthesized_expression "(((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35))" ( (binary_expression "((iVar10 - 0x16U & 0xffffffef) == 0) || (bVar35)" (parenthesized_expression "((iVar10 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(iVar10 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(iVar10 - 0x16U & 0xffffffef)" ( (binary_expression "iVar10 - 0x16U & 0xffffffef" (binary_expression "iVar10 - 0x16U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar35)" ( identifier ))) )) (compound_statement "{\n            DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);\n            unsupported_device_10493 = (int)(local_330->stat).st_dev;\n          }" { (expression_statement "DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4);" (assignment_expression "DAT_0003b394 = *(int *)((int)&(local_330->stat).st_dev + 4)" identifier = (pointer_expression "*(int *)((int)&(local_330->stat).st_dev + 4)" * (cast_expression "(int *)((int)&(local_330->stat).st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_dev + 4)" ( (binary_expression "(int)&(local_330->stat).st_dev + 4" (cast_expression "(int)&(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_dev" & (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "unsupported_device_10493 = (int)(local_330->stat).st_dev;" (assignment_expression "unsupported_device_10493 = (int)(local_330->stat).st_dev" identifier = (cast_expression "(int)(local_330->stat).st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_dev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) })) (expression_statement "local_330->scontext = UNKNOWN_SECURITY_CONTEXT;" (assignment_expression "local_330->scontext = UNKNOWN_SECURITY_CONTEXT" (field_expression "local_330->scontext" identifier -> field_identifier) = identifier) ;) (if_statement "if ((iVar10 == 0x3d) || (bVar35)) goto LAB_00018ee0;" if (parenthesized_expression "((iVar10 == 0x3d) || (bVar35))" ( (binary_expression "(iVar10 == 0x3d) || (bVar35)" (parenthesized_expression "(iVar10 == 0x3d)" ( (binary_expression "iVar10 == 0x3d" identifier == number_literal) )) || (parenthesized_expression "(bVar35)" ( identifier ))) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (expression_statement "local_330->acl_type = ACL_T_NONE;" (assignment_expression "local_330->acl_type = ACL_T_NONE" (field_expression "local_330->acl_type" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00018ac2;" goto statement_identifier ;) })) (expression_statement "*(char ***)(puVar26 + -0xc) = &local_330->scontext;" (assignment_expression "*(char ***)(puVar26 + -0xc) = &local_330->scontext" (pointer_expression "*(char ***)(puVar26 + -0xc)" * (cast_expression "(char ***)(puVar26 + -0xc)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_330->scontext" & (field_expression "local_330->scontext" identifier -> field_identifier))) ;) (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18a47;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18a47" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc));" (assignment_expression "iVar10 = rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc))" identifier = (call_expression "rpl_lgetfilecon(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),\n                                 *(security_context_t **)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(security_context_t **)(puVar26 + -0xc)" * (cast_expression "(security_context_t **)(puVar26 + -0xc)" ( (type_descriptor "security_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar10 < 0) goto LAB_00018a52;" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018a52;" goto statement_identifier ;)) (labeled_statement "LAB_0001873d:\n        bVar36 = iVar10 == 0;" statement_identifier : (expression_statement "bVar36 = iVar10 == 0;" (assignment_expression "bVar36 = iVar10 == 0" identifier = (binary_expression "iVar10 == 0" identifier == number_literal)) ;)) (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (expression_statement "iVar10 = 10;" (assignment_expression "iVar10 = 10" identifier = number_literal) ;) (expression_statement "pbVar29 = (byte *)"unlabeled";" (assignment_expression "pbVar29 = (byte *)"unlabeled"" identifier = (cast_expression "(byte *)"unlabeled"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""unlabeled"" " string_content "))) ;) (expression_statement "pbVar34 = (byte *)local_330->scontext;" (assignment_expression "pbVar34 = (byte *)local_330->scontext" identifier = (cast_expression "(byte *)local_330->scontext" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_330->scontext" identifier -> field_identifier))) ;) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        } while (bVar36);" do (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar35 = *pbVar29 < *pbVar34;\n          bVar36 = *pbVar29 == *pbVar34;\n          pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;\n          pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;\n        }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar35 = *pbVar29 < *pbVar34;" (assignment_expression "bVar35 = *pbVar29 < *pbVar34" identifier = (binary_expression "*pbVar29 < *pbVar34" (pointer_expression "*pbVar29" * identifier) < (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "bVar36 = *pbVar29 == *pbVar34;" (assignment_expression "bVar36 = *pbVar29 == *pbVar34" identifier = (binary_expression "*pbVar29 == *pbVar34" (pointer_expression "*pbVar29" * identifier) == (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar29 = pbVar29 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar29 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar29 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "cVar37 = (!bVar35 && !bVar36) != bVar35;" (assignment_expression "cVar37 = (!bVar35 && !bVar36) != bVar35" identifier = (binary_expression "(!bVar35 && !bVar36) != bVar35" (parenthesized_expression "(!bVar35 && !bVar36)" ( (binary_expression "!bVar35 && !bVar36" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) != identifier)) ;) (if_statement "if (format == long_format) {\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }" if (parenthesized_expression "(format == long_format)" ( (binary_expression "format == long_format" identifier == identifier) )) (compound_statement "{\n          *(undefined4 *)(puVar26 + -4) = 0x18ca5;\n          piVar18 = __errno_location();\n          goto LAB_00018ca7;\n        }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18ca5;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18ca5" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00018ca7;" goto statement_identifier ;) })) (if_statement "if ((!bVar35 && !bVar36) == bVar35) {\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "((!bVar35 && !bVar36) == bVar35)" ( (binary_expression "(!bVar35 && !bVar36) == bVar35" (parenthesized_expression "(!bVar35 && !bVar36)" ( (binary_expression "!bVar35 && !bVar36" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier) )) (compound_statement "{\n          local_330->acl_type = ACL_T_NONE;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330->acl_type = ACL_T_NONE;" (assignment_expression "local_330->acl_type = ACL_T_NONE" (field_expression "local_330->acl_type" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) })) (expression_statement "local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY;" (assignment_expression "local_330->acl_type = ACL_T_LSM_CONTEXT_ONLY" (field_expression "local_330->acl_type" identifier -> field_identifier) = identifier) ;) (expression_statement "any_has_acl = true;" (assignment_expression "any_has_acl = true" identifier = true) ;) }))) (expression_statement "local_33c = (local_330->stat).st_mode;" (assignment_expression "local_33c = (local_330->stat).st_mode" identifier = (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "fVar11 = local_33c & 0xf000;" (assignment_expression "fVar11 = local_33c & 0xf000" identifier = (binary_expression "local_33c & 0xf000" identifier & number_literal)) ;) (if_statement "if (fVar11 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(fVar11 != 0xa000)" ( (binary_expression "fVar11 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (if_statement "if (format != long_format) goto LAB_00018da0;" if (parenthesized_expression "(format != long_format)" ( (binary_expression "format != long_format" identifier != identifier) )) (goto_statement "goto LAB_00018da0;" goto statement_identifier ;)) (labeled_statement "LAB_000187b9:\n      pfVar8 = local_330;" statement_identifier : (expression_statement "pfVar8 = local_330;" (assignment_expression "pfVar8 = local_330" identifier = identifier) ;)) (expression_statement "*(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size;" (assignment_expression "*(int *)(puVar26 + -0xc) = (int)(local_330->stat).st_size" (pointer_expression "*(int *)(puVar26 + -0xc)" * (cast_expression "(int *)(puVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(local_330->stat).st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_330->stat).st_size" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x187d0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x187d0" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc));" (assignment_expression "pcVar12 = areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc))" identifier = (call_expression "areadlink_with_size(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(size_t *)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar26 + -0xc)" * (cast_expression "(size_t *)(puVar26 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (expression_statement "pfVar8->linkname = pcVar12;" (assignment_expression "pfVar8->linkname = pcVar12" (field_expression "pfVar8->linkname" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\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 "{\n        *(undefined4 *)(puVar26 + -8) = 5;\n        *(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar26 + -0x10) = 0;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19043;\n        pcVar12 = (char *)dcgettext();\n        puVar19 = local_334;\n        _Var9 = (_Bool)(char)local_344;\n        *(undefined4 *)(puVar26 + -0x14) = 0x19059;\n        file_failure(_Var9,pcVar12,(char *)puVar19);\n        pcVar12 = local_330->linkname;\n        if (pcVar12 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        pcVar14 = (char *)0x0;\n      }" { (expression_statement "*(undefined4 *)(puVar26 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0xc) = "cannot read symbolic link %s";" (assignment_expression "*(char **)(puVar26 + -0xc) = "cannot read symbolic link %s"" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot read symbolic link %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x19043;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x19043" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = (char *)dcgettext();" (assignment_expression "pcVar12 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (expression_statement "_Var9 = (_Bool)(char)local_344;" (assignment_expression "_Var9 = (_Bool)(char)local_344" identifier = (cast_expression "(_Bool)(char)local_344" ( (type_descriptor "_Bool" type_identifier) ) (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x19059;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x19059" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "file_failure(_Var9,pcVar12,(char *)puVar19);" (call_expression "file_failure(_Var9,pcVar12,(char *)puVar19)" identifier (argument_list "(_Var9,pcVar12,(char *)puVar19)" ( identifier , identifier , (cast_expression "(char *)puVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pcVar12 = local_330->linkname;" (assignment_expression "pcVar12 = local_330->linkname" identifier = (field_expression "local_330->linkname" identifier -> field_identifier)) ;) (if_statement "if (pcVar12 != (char *)0x0) goto LAB_000187e0;" 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_000187e0;" goto statement_identifier ;)) (labeled_statement "LAB_0001906d:\n        pcVar14 = (char *)0x0;" statement_identifier : (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }\n        pfVar8 = local_330;\n        if (pcVar14 == (char *)0x0) goto LAB_0001906d;\n        if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }\n        if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_000187e0:\n        if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }" statement_identifier : (if_statement "if (*pcVar12 == '/') {\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }\n        else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }" if (parenthesized_expression "(*pcVar12 == '/')" ( (binary_expression "*pcVar12 == '/'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\nLAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18f21;\n          pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));\n        }" { (labeled_statement "LAB_00018f18:\n          *(char **)(puVar26 + -0x10) = pcVar12;" statement_identifier : (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18f21;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18f21" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar14 = xstrdup(*(char **)(puVar26 + -0x10));" (assignment_expression "pcVar14 = xstrdup(*(char **)(puVar26 + -0x10))" identifier = (call_expression "xstrdup(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }" else (compound_statement "{\n          *(uint **)(puVar26 + -0x10) = local_334;\n          *(undefined4 *)(puVar26 + -0x14) = 0x187f7;\n          fVar11 = dir_len(*(char **)(puVar26 + -0x10));\n          if (fVar11 == unknown) goto LAB_00018f18;\n          local_33c = fVar11;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18811;\n          sVar13 = strlen(*(char **)(puVar26 + -0x10));\n          *(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18823;\n          pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));\n          fVar11 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }\n          *(filetype *)(puVar26 + -8) = fVar11;\n          *(uint **)(puVar26 + -0xc) = local_334;\n          *(char **)(puVar26 + -0x10) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x14) = 0x1884e;\n          pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));\n          *(char **)(puVar26 + -0xc) = pcVar12;\n          *(char **)(puVar26 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));\n        }" { (expression_statement "*(uint **)(puVar26 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x187f7;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x187f7" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "fVar11 = dir_len(*(char **)(puVar26 + -0x10));" (assignment_expression "fVar11 = dir_len(*(char **)(puVar26 + -0x10))" identifier = (call_expression "dir_len(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (fVar11 == unknown) goto LAB_00018f18;" if (parenthesized_expression "(fVar11 == unknown)" ( (binary_expression "fVar11 == unknown" identifier == identifier) )) (goto_statement "goto LAB_00018f18;" goto statement_identifier ;)) (expression_statement "local_33c = fVar11;" (assignment_expression "local_33c = fVar11" identifier = identifier) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18811;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18811" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "*(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13;" (assignment_expression "*(filetype *)(puVar26 + -0x10) = local_33c + chardev + sVar13" (pointer_expression "*(filetype *)(puVar26 + -0x10)" * (cast_expression "(filetype *)(puVar26 + -0x10)" ( (type_descriptor "filetype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (binary_expression "local_33c + chardev + sVar13" (binary_expression "local_33c + chardev" identifier + identifier) + identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18823;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18823" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10));" (assignment_expression "pcVar14 = (char *)xmalloc(*(size_t *)(puVar26 + -0x10))" identifier = (cast_expression "(char *)xmalloc(*(size_t *)(puVar26 + -0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(*(size_t *)(puVar26 + -0x10))" identifier (argument_list "(*(size_t *)(puVar26 + -0x10))" ( (pointer_expression "*(size_t *)(puVar26 + -0x10)" * (cast_expression "(size_t *)(puVar26 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) ))))) ;) (expression_statement "fVar11 = local_33c;" (assignment_expression "fVar11 = local_33c" identifier = identifier) ;) (if_statement "if (*(char *)((int)local_334 + (local_33c - fifo)) != '/') {\n            fVar11 = local_33c + fifo;\n          }" if (parenthesized_expression "(*(char *)((int)local_334 + (local_33c - fifo)) != '/')" ( (binary_expression "*(char *)((int)local_334 + (local_33c - fifo)) != '/'" (pointer_expression "*(char *)((int)local_334 + (local_33c - fifo))" * (cast_expression "(char *)((int)local_334 + (local_33c - fifo))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_334 + (local_33c - fifo))" ( (binary_expression "(int)local_334 + (local_33c - fifo)" (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_33c - fifo)" ( (binary_expression "local_33c - fifo" identifier - identifier) ))) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n            fVar11 = local_33c + fifo;\n          }" { (expression_statement "fVar11 = local_33c + fifo;" (assignment_expression "fVar11 = local_33c + fifo" identifier = (binary_expression "local_33c + fifo" identifier + identifier)) ;) })) (expression_statement "*(filetype *)(puVar26 + -8) = fVar11;" (assignment_expression "*(filetype *)(puVar26 + -8) = fVar11" (pointer_expression "*(filetype *)(puVar26 + -8)" * (cast_expression "(filetype *)(puVar26 + -8)" ( (type_descriptor "filetype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar26 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar26 + -0xc)" * (cast_expression "(uint **)(puVar26 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar14;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar14" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x1884e;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x1884e" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8));" (assignment_expression "pcVar15 = stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8))" identifier = (call_expression "stpncpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                            *(size_t *)(puVar26 + -8))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar26 + -8)" * (cast_expression "(size_t *)(puVar26 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar26 + -0xc) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0xc) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18857;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18857" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc));" (call_expression "strcpy(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(char **)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) ))) ;) })))) (expression_statement "pfVar8 = local_330;" (assignment_expression "pfVar8 = local_330" identifier = identifier) ;) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_0001906d;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001906d;" goto statement_identifier ;)) (if_statement "if (local_330->quoted == 0) {\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }" if (parenthesized_expression "(local_330->quoted == 0)" ( (binary_expression "local_330->quoted == 0" (field_expression "local_330->quoted" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          pcVar12 = local_330->linkname;\n          *(undefined4 *)(puVar26 + -4) = 0x1911a;\n          _Var9 = needs_quoting(pcVar12);\n          if (_Var9) {\n            pfVar8->quoted = -1;\n          }\n        }" { (expression_statement "pcVar12 = local_330->linkname;" (assignment_expression "pcVar12 = local_330->linkname" identifier = (field_expression "local_330->linkname" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x1911a;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x1911a" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "_Var9 = needs_quoting(pcVar12);" (assignment_expression "_Var9 = needs_quoting(pcVar12)" identifier = (call_expression "needs_quoting(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (if_statement "if (_Var9) {\n            pfVar8->quoted = -1;\n          }" if (parenthesized_expression "(_Var9)" ( identifier )) (compound_statement "{\n            pfVar8->quoted = -1;\n          }" { (expression_statement "pfVar8->quoted = -1;" (assignment_expression "pfVar8->quoted = -1" (field_expression "pfVar8->quoted" identifier -> field_identifier) = number_literal) ;) })) })) (if_statement "if ((slash < indicator_style) || (check_symlink_color != false)) {\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }" if (parenthesized_expression "((slash < indicator_style) || (check_symlink_color != false))" ( (binary_expression "(slash < indicator_style) || (check_symlink_color != false)" (parenthesized_expression "(slash < indicator_style)" ( (binary_expression "slash < indicator_style" identifier < identifier) )) || (parenthesized_expression "(check_symlink_color != false)" ( (binary_expression "check_symlink_color != false" identifier != false) ))) )) (compound_statement "{\n          *(stat **)(puVar26 + -8) = &linkstats;\n          *(char **)(puVar26 + -0xc) = pcVar14;\n          *(undefined4 *)(puVar26 + -0x10) = 3;\n          *(undefined4 *)(puVar26 + -0x14) = 0x18d4a;\n          iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));\n          if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }\n        }" { (expression_statement "*(stat **)(puVar26 + -8) = &linkstats;" (assignment_expression "*(stat **)(puVar26 + -8) = &linkstats" (pointer_expression "*(stat **)(puVar26 + -8)" * (cast_expression "(stat **)(puVar26 + -8)" ( (type_descriptor "stat **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = (pointer_expression "&linkstats" & identifier)) ;) (expression_statement "*(char **)(puVar26 + -0xc) = pcVar14;" (assignment_expression "*(char **)(puVar26 + -0xc) = pcVar14" (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18d4a;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18d4a" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8));" (assignment_expression "iVar10 = __xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8))" identifier (argument_list "(*(int *)(puVar26 + -0x10),*(char **)(puVar26 + -0xc),\n                             *(stat64 **)(puVar26 + -8))" ( (pointer_expression "*(int *)(puVar26 + -0x10)" * (cast_expression "(int *)(puVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0xc)" * (cast_expression "(char **)(puVar26 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar26 + -8)" * (cast_expression "(stat64 **)(puVar26 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar10 == 0) {\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            local_330->linkok = true;\n            if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }\n          }" { (expression_statement "local_330->linkok = true;" (assignment_expression "local_330->linkok = true" (field_expression "local_330->linkok" identifier -> field_identifier) = true) ;) (if_statement "if ((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)) {\n              local_330->linkmode = linkstats.st_mode;\n            }" if (parenthesized_expression "((((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(((char)local_344 == '\0') || (format == long_format)) ||\n               ((linkstats.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(((char)local_344 == '\0') || (format == long_format))" ( (binary_expression "((char)local_344 == '\0') || (format == long_format)" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(format == long_format)" ( (binary_expression "format == long_format" identifier == identifier) ))) )) || (parenthesized_expression "((linkstats.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(linkstats.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(linkstats.st_mode & 0xf000)" ( (binary_expression "linkstats.st_mode & 0xf000" (field_expression "linkstats.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              local_330->linkmode = linkstats.st_mode;\n            }" { (expression_statement "local_330->linkmode = linkstats.st_mode;" (assignment_expression "local_330->linkmode = linkstats.st_mode" (field_expression "local_330->linkmode" identifier -> field_identifier) = (field_expression "linkstats.st_mode" identifier . field_identifier)) ;) })) })) })) }))) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar14;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar14" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18899;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18899" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar26 + -0x10));" (call_expression "free(*(void **)(puVar26 + -0x10))" identifier (argument_list "(*(void **)(puVar26 + -0x10))" ( (pointer_expression "*(void **)(puVar26 + -0x10)" * (cast_expression "(void **)(puVar26 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "local_334 = (uint *)(local_330->stat).st_mode;" (assignment_expression "local_334 = (uint *)(local_330->stat).st_mode" identifier = (cast_expression "(uint *)(local_330->stat).st_mode" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "fVar11 = (uint)local_334 & 0xf000;" (assignment_expression "fVar11 = (uint)local_334 & 0xf000" identifier = (binary_expression "(uint)local_334 & 0xf000" (cast_expression "(uint)local_334" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (fVar11 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(fVar11 != 0xa000)" ( (binary_expression "fVar11 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (labeled_statement "LAB_000188bb:\n      local_330->filetype = symbolic_link;" statement_identifier : (expression_statement "local_330->filetype = symbolic_link;" (assignment_expression "local_330->filetype = symbolic_link" (field_expression "local_330->filetype" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }" else (compound_statement "{\nLAB_00018287:\n      local_33c = (local_330->stat).st_mode;\n      fVar11 = local_33c & 0xf000;\n      if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }\n    }" { (labeled_statement "LAB_00018287:\n      local_33c = (local_330->stat).st_mode;" statement_identifier : (expression_statement "local_33c = (local_330->stat).st_mode;" (assignment_expression "local_33c = (local_330->stat).st_mode" identifier = (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "fVar11 = local_33c & 0xf000;" (assignment_expression "fVar11 = local_33c & 0xf000" identifier = (binary_expression "local_33c & 0xf000" identifier & number_literal)) ;) (if_statement "if (fVar11 == 0xa000) {\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" if (parenthesized_expression "(fVar11 == 0xa000)" ( (binary_expression "fVar11 == 0xa000" identifier == number_literal) )) (compound_statement "{\nLAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" { (labeled_statement "LAB_00018da0:\n        if (check_symlink_color != false) goto LAB_000187b9;" statement_identifier : (if_statement "if (check_symlink_color != false) goto LAB_000187b9;" if (parenthesized_expression "(check_symlink_color != false)" ( (binary_expression "check_symlink_color != false" identifier != false) )) (goto_statement "goto LAB_000187b9;" goto statement_identifier ;))) (goto_statement "goto LAB_000188bb;" goto statement_identifier ;) })) (labeled_statement "LAB_000182a0:\n      if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }" statement_identifier : (if_statement "if (fVar11 == 0x4000) {\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }\n      else {\n        local_330->filetype = normal;\n      }" if (parenthesized_expression "(fVar11 == 0x4000)" ( (binary_expression "fVar11 == 0x4000" identifier == number_literal) )) (compound_statement "{\n        if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }\n      }" { (if_statement "if (((char)local_344 == '\0') || (immediate_dirs != false)) {\n          local_330->filetype = directory;\n        }\n        else {\n          local_330->filetype = arg_directory;\n        }" if (parenthesized_expression "(((char)local_344 == '\0') || (immediate_dirs != false))" ( (binary_expression "((char)local_344 == '\0') || (immediate_dirs != false)" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(immediate_dirs != false)" ( (binary_expression "immediate_dirs != false" identifier != false) ))) )) (compound_statement "{\n          local_330->filetype = directory;\n        }" { (expression_statement "local_330->filetype = directory;" (assignment_expression "local_330->filetype = directory" (field_expression "local_330->filetype" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          local_330->filetype = arg_directory;\n        }" else (compound_statement "{\n          local_330->filetype = arg_directory;\n        }" { (expression_statement "local_330->filetype = arg_directory;" (assignment_expression "local_330->filetype = arg_directory" (field_expression "local_330->filetype" identifier -> field_identifier) = identifier) ;) }))) }) (else_clause "else {\n        local_330->filetype = normal;\n      }" else (compound_statement "{\n        local_330->filetype = normal;\n      }" { (expression_statement "local_330->filetype = normal;" (assignment_expression "local_330->filetype = normal" (field_expression "local_330->filetype" identifier -> field_identifier) = identifier) ;) })))) }))) (expression_statement "uVar28 = (undefined4)(local_330->stat).st_blocks;" (assignment_expression "uVar28 = (undefined4)(local_330->stat).st_blocks" identifier = (field_expression "(undefined4)(local_330->stat).st_blocks" (call_expression "(undefined4)(local_330->stat)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4);" (assignment_expression "uVar33 = *(undefined4 *)((int)&(local_330->stat).st_blocks + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(local_330->stat).st_blocks + 4)" * (cast_expression "(undefined4 *)((int)&(local_330->stat).st_blocks + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_blocks + 4)" ( (binary_expression "(int)&(local_330->stat).st_blocks + 4" (cast_expression "(int)&(local_330->stat).st_blocks" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_blocks" & (field_expression "(local_330->stat).st_blocks" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((format == long_format) || (print_block_size != false)) {\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }" if (parenthesized_expression "((format == long_format) || (print_block_size != false))" ( (binary_expression "(format == long_format) || (print_block_size != false)" (parenthesized_expression "(format == long_format)" ( (binary_expression "format == long_format" identifier == identifier) )) || (parenthesized_expression "(print_block_size != false)" ( (binary_expression "print_block_size != false" identifier != false) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;\n      *(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(undefined4 *)(puVar26 + -0x10) = 0x200;\n      *(int *)(puVar26 + -0x14) = human_output_opts;\n      *(char **)(puVar26 + -0x18) = buf;\n      *(undefined4 *)(puVar26 + -0x1c) = uVar33;\n      *(undefined4 *)(puVar26 + -0x20) = uVar28;\n      local_334 = (uint *)buf;\n      *(undefined4 *)(puVar26 + -0x24) = 0x18505;\n      pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x18510;\n      iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n      if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }\n      if (format != long_format) goto LAB_000182df;\n      if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }\n      if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }\n      if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }\n      if (print_scontext != false) goto LAB_0001855f;\nLAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;\n      *(char **)(puVar26 + -8) = b;\n      _Var3 = (local_330->stat).st_nlink;\n      *(undefined4 *)(puVar26 + -0xc) = 0;\n      *(__nlink_t *)(puVar26 + -0x10) = _Var3;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185a9;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x185b1;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }\n      local_334 = (uint *)(local_330->stat).st_mode;\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = output_block_size._4_4_;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = output_block_size._4_4_" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = (field_expression "output_block_size._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = (undefined4)output_block_size" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = (cast_expression "(undefined4)output_block_size" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 0x200;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 0x200" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar26 + -0x14) = human_output_opts;" (assignment_expression "*(int *)(puVar26 + -0x14) = human_output_opts" (pointer_expression "*(int *)(puVar26 + -0x14)" * (cast_expression "(int *)(puVar26 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar26 + -0x18) = buf;" (assignment_expression "*(char **)(puVar26 + -0x18) = buf" (pointer_expression "*(char **)(puVar26 + -0x18)" * (cast_expression "(char **)(puVar26 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x1c) = uVar33;" (assignment_expression "*(undefined4 *)(puVar26 + -0x1c) = uVar33" (pointer_expression "*(undefined4 *)(puVar26 + -0x1c)" * (cast_expression "(undefined4 *)(puVar26 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x1c)" ( (binary_expression "puVar26 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x20) = uVar28;" (assignment_expression "*(undefined4 *)(puVar26 + -0x20) = uVar28" (pointer_expression "*(undefined4 *)(puVar26 + -0x20)" * (cast_expression "(undefined4 *)(puVar26 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_334 = (uint *)buf;" (assignment_expression "local_334 = (uint *)buf" identifier = (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x24) = 0x18505;" (assignment_expression "*(undefined4 *)(puVar26 + -0x24) = 0x18505" (pointer_expression "*(undefined4 *)(puVar26 + -0x24)" * (cast_expression "(undefined4 *)(puVar26 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x24)" ( (binary_expression "puVar26 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8));" (assignment_expression "pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8))" identifier = (call_expression "human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                               *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                               *(uintmax_t *)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x20)" * (cast_expression "(uintmax_t *)(puVar26 + -0x20)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0x18)" * (cast_expression "(char **)(puVar26 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar26 + -0x14)" * (cast_expression "(int *)(puVar26 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(uintmax_t *)(puVar26 + -8)" * (cast_expression "(uintmax_t *)(puVar26 + -8)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18510;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18510" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));" (assignment_expression "iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier = (call_expression "gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar26 + -0xc)" * (cast_expression "(int *)(puVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (block_size_width < iVar10) {\n        block_size_width = iVar10;\n      }" if (parenthesized_expression "(block_size_width < iVar10)" ( (binary_expression "block_size_width < iVar10" identifier < identifier) )) (compound_statement "{\n        block_size_width = iVar10;\n      }" { (expression_statement "block_size_width = iVar10;" (assignment_expression "block_size_width = iVar10" identifier = identifier) ;) })) (if_statement "if (format != long_format) goto LAB_000182df;" if (parenthesized_expression "(format != long_format)" ( (binary_expression "format != long_format" identifier != identifier) )) (goto_statement "goto LAB_000182df;" goto statement_identifier ;)) (if_statement "if (print_owner != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }" if (parenthesized_expression "(print_owner != false)" ( (binary_expression "print_owner != false" identifier != false) )) (compound_statement "{\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18eae;\n        iVar10 = format_user_width(uVar4);\n        if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }\n      }" { (expression_statement "uVar4 = (local_330->stat).st_uid;" (assignment_expression "uVar4 = (local_330->stat).st_uid" identifier = (field_expression "(local_330->stat).st_uid" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18eae;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18eae" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = format_user_width(uVar4);" (assignment_expression "iVar10 = format_user_width(uVar4)" identifier = (call_expression "format_user_width(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (owner_width < iVar10) {\n          owner_width = iVar10;\n        }" if (parenthesized_expression "(owner_width < iVar10)" ( (binary_expression "owner_width < iVar10" identifier < identifier) )) (compound_statement "{\n          owner_width = iVar10;\n        }" { (expression_statement "owner_width = iVar10;" (assignment_expression "owner_width = iVar10" identifier = identifier) ;) })) })) (if_statement "if (print_group != false) {\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }" if (parenthesized_expression "(print_group != false)" ( (binary_expression "print_group != false" identifier != false) )) (compound_statement "{\n        uVar21 = (local_330->stat).st_gid;\n        if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }\n        if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }\n      }" { (expression_statement "uVar21 = (local_330->stat).st_gid;" (assignment_expression "uVar21 = (local_330->stat).st_gid" identifier = (field_expression "(local_330->stat).st_gid" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (numeric_ids == false) {\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }" if (parenthesized_expression "(numeric_ids == false)" ( (binary_expression "numeric_ids == false" identifier == false) )) (compound_statement "{\n          local_344 = uVar21;\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190df;\n          pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));\n          uVar21 = local_344;\n          if (pcVar12 == (char *)0x0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar26 + -0xc) = 0;\n          *(char **)(puVar26 + -0x10) = pcVar12;\n          *(undefined4 *)(puVar26 + -0x14) = 0x190fb;\n          pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n          if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }\n        }" { (expression_statement "local_344 = uVar21;" (assignment_expression "local_344 = uVar21" identifier = identifier) ;) (expression_statement "*(uint *)(puVar26 + -0x10) = uVar21;" (assignment_expression "*(uint *)(puVar26 + -0x10) = uVar21" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x190df;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x190df" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10));" (assignment_expression "pcVar12 = getgroup(*(gid_t *)(puVar26 + -0x10))" identifier = (call_expression "getgroup(*(gid_t *)(puVar26 + -0x10))" identifier (argument_list "(*(gid_t *)(puVar26 + -0x10))" ( (pointer_expression "*(gid_t *)(puVar26 + -0x10)" * (cast_expression "(gid_t *)(puVar26 + -0x10)" ( (type_descriptor "gid_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "uVar21 = local_344;" (assignment_expression "uVar21 = local_344" identifier = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_00018e2e;" 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_00018e2e;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x190fb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x190fb" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));" (assignment_expression "pcVar12 = (char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier = (cast_expression "(char *)gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar26 + -0xc)" * (cast_expression "(int *)(puVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) ))))) ;) (if_statement "if ((int)pcVar12 < 0) {\n            pcVar12 = (char *)0x0;\n          }" if (parenthesized_expression "((int)pcVar12 < 0)" ( (binary_expression "(int)pcVar12 < 0" (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pcVar12 = (char *)0x0;\n          }" { (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }" else (compound_statement "{\nLAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;\n          *(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar26 + -0x18) = 0xb;\n          *(undefined4 *)(puVar26 + -0x1c) = 1;\n          *(uint **)(puVar26 + -0x20) = local_334;\n          *(undefined4 *)(puVar26 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar19 = local_334;\n          do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);\n          bVar35 = (uVar24 & 0x8080) == 0;\n          if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }\n          if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }\n          pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));\n        }" { (labeled_statement "LAB_00018e2e:\n          *(uint *)(puVar26 + -0x10) = uVar21;" statement_identifier : (expression_statement "*(uint *)(puVar26 + -0x10) = uVar21;" (assignment_expression "*(uint *)(puVar26 + -0x10) = uVar21" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined **)(puVar26 + -0x14) = &DAT_0002d97b;" (assignment_expression "*(undefined **)(puVar26 + -0x14) = &DAT_0002d97b" (pointer_expression "*(undefined **)(puVar26 + -0x14)" * (cast_expression "(undefined **)(puVar26 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = (pointer_expression "&DAT_0002d97b" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x18) = 0xb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x18) = 0xb" (pointer_expression "*(undefined4 *)(puVar26 + -0x18)" * (cast_expression "(undefined4 *)(puVar26 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x1c) = 1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x1c) = 1" (pointer_expression "*(undefined4 *)(puVar26 + -0x1c)" * (cast_expression "(undefined4 *)(puVar26 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x1c)" ( (binary_expression "puVar26 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)(puVar26 + -0x20) = local_334;" (assignment_expression "*(uint **)(puVar26 + -0x20) = local_334" (pointer_expression "*(uint **)(puVar26 + -0x20)" * (cast_expression "(uint **)(puVar26 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x24) = 0x18e48;" (assignment_expression "*(undefined4 *)(puVar26 + -0x24) = 0x18e48" (pointer_expression "*(undefined4 *)(puVar26 + -0x24)" * (cast_expression "(undefined4 *)(puVar26 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x24)" ( (binary_expression "puVar26 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__sprintf_chk();" (call_expression "__sprintf_chk()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar19 = local_334;" (assignment_expression "puVar19 = local_334" identifier = identifier) ;) (do_statement "do {\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          } while (uVar21 == 0);" do (compound_statement "{\n            puVar17 = puVar19;\n            uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;\n            uVar21 = uVar24 & 0x80808080;\n            puVar19 = puVar17 + 1;\n          }" { (expression_statement "puVar17 = puVar19;" (assignment_expression "puVar17 = puVar19" identifier = identifier) ;) (expression_statement "uVar24 = *puVar17 + 0xfefefeff & ~*puVar17;" (assignment_expression "uVar24 = *puVar17 + 0xfefefeff & ~*puVar17" identifier = (binary_expression "*puVar17 + 0xfefefeff & ~*puVar17" (binary_expression "*puVar17 + 0xfefefeff" (pointer_expression "*puVar17" * identifier) + number_literal) & (unary_expression "~*puVar17" ~ (pointer_expression "*puVar17" * identifier)))) ;) (expression_statement "uVar21 = uVar24 & 0x80808080;" (assignment_expression "uVar21 = uVar24 & 0x80808080" identifier = (binary_expression "uVar24 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar19 = puVar17 + 1;" (assignment_expression "puVar19 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) ;) (expression_statement "bVar35 = (uVar24 & 0x8080) == 0;" (assignment_expression "bVar35 = (uVar24 & 0x8080) == 0" identifier = (binary_expression "(uVar24 & 0x8080) == 0" (parenthesized_expression "(uVar24 & 0x8080)" ( (binary_expression "uVar24 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar35) {\n            uVar21 = uVar21 >> 0x10;\n          }" if (parenthesized_expression "(bVar35)" ( identifier )) (compound_statement "{\n            uVar21 = uVar21 >> 0x10;\n          }" { (expression_statement "uVar21 = uVar21 >> 0x10;" (assignment_expression "uVar21 = uVar21 >> 0x10" identifier = (binary_expression "uVar21 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar35) {\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }" if (parenthesized_expression "(bVar35)" ( identifier )) (compound_statement "{\n            puVar19 = (uint *)((int)puVar17 + 6);\n          }" { (expression_statement "puVar19 = (uint *)((int)puVar17 + 6);" (assignment_expression "puVar19 = (uint *)((int)puVar17 + 6)" identifier = (cast_expression "(uint *)((int)puVar17 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 6)" ( (binary_expression "(int)puVar17 + 6" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334));" (assignment_expression "pcVar12 = (char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334))" identifier = (cast_expression "(char *)((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334))" ( (binary_expression "(int)puVar19 +\n                            ((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334)" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)) - (int)local_334" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar21,(byte)uVar21)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar21,(byte)uVar21)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar21,(byte)uVar21)" identifier (argument_list "((byte)uVar21,(byte)uVar21)" ( (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) }))) (if_statement "if (group_width < (int)pcVar12) {\n          group_width = (int)pcVar12;\n        }" if (parenthesized_expression "(group_width < (int)pcVar12)" ( (binary_expression "group_width < (int)pcVar12" identifier < (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          group_width = (int)pcVar12;\n        }" { (expression_statement "group_width = (int)pcVar12;" (assignment_expression "group_width = (int)pcVar12" identifier = (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) })) (if_statement "if (print_author != false) {\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }" if (parenthesized_expression "(print_author != false)" ( (binary_expression "print_author != false" identifier != false) )) (compound_statement "{\n        uVar4 = (local_330->stat).st_uid;\n        *(undefined4 *)(puVar26 + -4) = 0x18dfe;\n        iVar10 = format_user_width(uVar4);\n        if (author_width < iVar10) {\n          author_width = iVar10;\n        }\n      }" { (expression_statement "uVar4 = (local_330->stat).st_uid;" (assignment_expression "uVar4 = (local_330->stat).st_uid" identifier = (field_expression "(local_330->stat).st_uid" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x18dfe;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x18dfe" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = format_user_width(uVar4);" (assignment_expression "iVar10 = format_user_width(uVar4)" identifier = (call_expression "format_user_width(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (author_width < iVar10) {\n          author_width = iVar10;\n        }" if (parenthesized_expression "(author_width < iVar10)" ( (binary_expression "author_width < iVar10" identifier < identifier) )) (compound_statement "{\n          author_width = iVar10;\n        }" { (expression_statement "author_width = iVar10;" (assignment_expression "author_width = iVar10" identifier = identifier) ;) })) })) (if_statement "if (print_scontext != false) goto LAB_0001855f;" if (parenthesized_expression "(print_scontext != false)" ( (binary_expression "print_scontext != false" identifier != false) )) (goto_statement "goto LAB_0001855f;" goto statement_identifier ;)) (labeled_statement "LAB_0001857f:\n      if (format != long_format) goto LAB_000182ec;" statement_identifier : (if_statement "if (format != long_format) goto LAB_000182ec;" if (parenthesized_expression "(format != long_format)" ( (binary_expression "format != long_format" identifier != identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;))) (expression_statement "*(char **)(puVar26 + -8) = b;" (assignment_expression "*(char **)(puVar26 + -8) = b" (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "_Var3 = (local_330->stat).st_nlink;" (assignment_expression "_Var3 = (local_330->stat).st_nlink" identifier = (field_expression "(local_330->stat).st_nlink" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(__nlink_t *)(puVar26 + -0x10) = _Var3;" (assignment_expression "*(__nlink_t *)(puVar26 + -0x10) = _Var3" (pointer_expression "*(__nlink_t *)(puVar26 + -0x10)" * (cast_expression "(__nlink_t *)(puVar26 + -0x10)" ( (type_descriptor "__nlink_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x185a9;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x185a9" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));" (assignment_expression "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier = (call_expression "umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x185b1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x185b1" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (nlink_width < (int)sVar13) {\n        nlink_width = sVar13;\n      }" if (parenthesized_expression "(nlink_width < (int)sVar13)" ( (binary_expression "nlink_width < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        nlink_width = sVar13;\n      }" { (expression_statement "nlink_width = sVar13;" (assignment_expression "nlink_width = sVar13" identifier = identifier) ;) })) (expression_statement "local_334 = (uint *)(local_330->stat).st_mode;" (assignment_expression "local_334 = (uint *)(local_330->stat).st_mode" identifier = (cast_expression "(uint *)(local_330->stat).st_mode" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_330->stat).st_mode" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }" if (parenthesized_expression "(((uint)local_334 & 0xb000) == 0x2000)" ( (binary_expression "((uint)local_334 & 0xb000) == 0x2000" (parenthesized_expression "((uint)local_334 & 0xb000)" ( (binary_expression "(uint)local_334 & 0xb000" (cast_expression "(uint)local_334" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);\n        uVar24 = (uint)(local_330->stat).st_rdev;\n        *(char **)(puVar26 + -8) = buf;\n        local_344 = uVar24;\n        local_340 = uVar21;\n        local_334 = (uint *)buf;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18623;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1862b;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }\n        iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);\n        uVar21 = (uint)(local_330->stat).st_rdev;\n        *(uint **)(puVar26 + -8) = local_334;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18665;\n        pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x1866d;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }\n        iVar10 = minor_device_number_width + 2 + major_device_number_width;\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }" { (expression_statement "uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4);" (assignment_expression "uVar21 = *(uint *)((int)&(local_330->stat).st_rdev + 4)" identifier = (pointer_expression "*(uint *)((int)&(local_330->stat).st_rdev + 4)" * (cast_expression "(uint *)((int)&(local_330->stat).st_rdev + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_rdev + 4)" ( (binary_expression "(int)&(local_330->stat).st_rdev + 4" (cast_expression "(int)&(local_330->stat).st_rdev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_rdev" & (field_expression "(local_330->stat).st_rdev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar24 = (uint)(local_330->stat).st_rdev;" (assignment_expression "uVar24 = (uint)(local_330->stat).st_rdev" identifier = (field_expression "(uint)(local_330->stat).st_rdev" (call_expression "(uint)(local_330->stat)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "*(char **)(puVar26 + -8) = buf;" (assignment_expression "*(char **)(puVar26 + -8) = buf" (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_344 = uVar24;" (assignment_expression "local_344 = uVar24" identifier = identifier) ;) (expression_statement "local_340 = uVar21;" (assignment_expression "local_340 = uVar21" identifier = identifier) ;) (expression_statement "local_334 = (uint *)buf;" (assignment_expression "local_334 = (uint *)buf" identifier = (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000;" (assignment_expression "*(uint *)(puVar26 + -0x10) = uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (binary_expression "uVar24 >> 8 & 0xfff | uVar21 & 0xfffff000" (binary_expression "uVar24 >> 8 & 0xfff" (binary_expression "uVar24 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "uVar21 & 0xfffff000" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18623;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18623" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));" (assignment_expression "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier = (call_expression "umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x1862b;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x1862b" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (major_device_number_width < (int)sVar13) {\n          major_device_number_width = sVar13;\n        }" if (parenthesized_expression "(major_device_number_width < (int)sVar13)" ( (binary_expression "major_device_number_width < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          major_device_number_width = sVar13;\n        }" { (expression_statement "major_device_number_width = sVar13;" (assignment_expression "major_device_number_width = sVar13" identifier = identifier) ;) })) (expression_statement "iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4);" (assignment_expression "iVar10 = *(int *)((int)&(local_330->stat).st_rdev + 4)" identifier = (pointer_expression "*(int *)((int)&(local_330->stat).st_rdev + 4)" * (cast_expression "(int *)((int)&(local_330->stat).st_rdev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_rdev + 4)" ( (binary_expression "(int)&(local_330->stat).st_rdev + 4" (cast_expression "(int)&(local_330->stat).st_rdev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_rdev" & (field_expression "(local_330->stat).st_rdev" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar21 = (uint)(local_330->stat).st_rdev;" (assignment_expression "uVar21 = (uint)(local_330->stat).st_rdev" identifier = (field_expression "(uint)(local_330->stat).st_rdev" (call_expression "(uint)(local_330->stat)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "*(uint **)(puVar26 + -8) = local_334;" (assignment_expression "*(uint **)(puVar26 + -8) = local_334" (pointer_expression "*(uint **)(puVar26 + -8)" * (cast_expression "(uint **)(puVar26 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff;" (assignment_expression "*(uint *)(puVar26 + -0x10) =\n             (uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (binary_expression "(uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8 |\n             uVar21 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar21 >> 0x14) | (uint3)((uint)(iVar10 << 0x14) >> 8)" (call_expression "(uint3)(uVar21 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar21 >> 0x14)" ( (binary_expression "uVar21 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((uint)(iVar10 << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(iVar10 << 0x14) >> 8)" ( (binary_expression "(uint)(iVar10 << 0x14) >> 8" (call_expression "(uint)(iVar10 << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 << 0x14)" ( (binary_expression "iVar10 << 0x14" identifier << number_literal) ))) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar21 & 0xff" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18665;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18665" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));" (assignment_expression "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier = (call_expression "umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x1866d;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x1866d" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (minor_device_number_width < (int)sVar13) {\n          minor_device_number_width = sVar13;\n        }" if (parenthesized_expression "(minor_device_number_width < (int)sVar13)" ( (binary_expression "minor_device_number_width < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          minor_device_number_width = sVar13;\n        }" { (expression_statement "minor_device_number_width = sVar13;" (assignment_expression "minor_device_number_width = sVar13" identifier = identifier) ;) })) (expression_statement "iVar10 = minor_device_number_width + 2 + major_device_number_width;" (assignment_expression "iVar10 = minor_device_number_width + 2 + major_device_number_width" identifier = (binary_expression "minor_device_number_width + 2 + major_device_number_width" (binary_expression "minor_device_number_width + 2" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar10 <= file_size_width) goto LAB_000182ec;" if (parenthesized_expression "(iVar10 <= file_size_width)" ( (binary_expression "iVar10 <= file_size_width" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;\n        *(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(undefined4 *)(puVar26 + -0x10) = 1;\n        *(int *)(puVar26 + -0x14) = file_human_output_opts;\n        *(char **)(puVar26 + -0x18) = buf;\n        pfVar8 = local_330;\n        *(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);\n        *(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;\n        *(undefined4 *)(puVar26 + -0x24) = 0x18c7e;\n        pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));\n        *(undefined4 *)(puVar26 + -0xc) = 0;\n        *(char **)(puVar26 + -0x10) = pcVar12;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18c89;\n        iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));\n        if (iVar10 <= file_size_width) goto LAB_000182ec;\n      }" { (expression_statement "*(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = file_output_block_size._4_4_" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = (field_expression "file_output_block_size._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size;" (assignment_expression "*(undefined4 *)(puVar26 + -8) = (undefined4)file_output_block_size" (pointer_expression "*(undefined4 *)(puVar26 + -8)" * (cast_expression "(undefined4 *)(puVar26 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = (cast_expression "(undefined4)file_output_block_size" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar26 + -0x10)" * (cast_expression "(undefined4 *)(puVar26 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar26 + -0x14) = file_human_output_opts;" (assignment_expression "*(int *)(puVar26 + -0x14) = file_human_output_opts" (pointer_expression "*(int *)(puVar26 + -0x14)" * (cast_expression "(int *)(puVar26 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar26 + -0x18) = buf;" (assignment_expression "*(char **)(puVar26 + -0x18) = buf" (pointer_expression "*(char **)(puVar26 + -0x18)" * (cast_expression "(char **)(puVar26 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pfVar8 = local_330;" (assignment_expression "pfVar8 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4);" (assignment_expression "*(undefined4 *)(puVar26 + -0x1c) = *(undefined4 *)((int)&(local_330->stat).st_size + 4)" (pointer_expression "*(undefined4 *)(puVar26 + -0x1c)" * (cast_expression "(undefined4 *)(puVar26 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x1c)" ( (binary_expression "puVar26 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(local_330->stat).st_size + 4)" * (cast_expression "(undefined4 *)((int)&(local_330->stat).st_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_size + 4)" ( (binary_expression "(int)&(local_330->stat).st_size + 4" (cast_expression "(int)&(local_330->stat).st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_size" & (field_expression "(local_330->stat).st_size" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size;" (assignment_expression "*(int *)(puVar26 + -0x20) = (int)(pfVar8->stat).st_size" (pointer_expression "*(int *)(puVar26 + -0x20)" * (cast_expression "(int *)(puVar26 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) = (cast_expression "(int)(pfVar8->stat).st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "(pfVar8->stat).st_size" (parenthesized_expression "(pfVar8->stat)" ( (field_expression "pfVar8->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x24) = 0x18c7e;" (assignment_expression "*(undefined4 *)(puVar26 + -0x24) = 0x18c7e" (pointer_expression "*(undefined4 *)(puVar26 + -0x24)" * (cast_expression "(undefined4 *)(puVar26 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x24)" ( (binary_expression "puVar26 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8));" (assignment_expression "pcVar12 = human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8))" identifier = (call_expression "human_readable(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x20),*(char **)(puVar26 + -0x18),\n                                 *(int *)(puVar26 + -0x14),*(uintmax_t *)(puVar26 + -0x10),\n                                 *(uintmax_t *)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x20)" * (cast_expression "(uintmax_t *)(puVar26 + -0x20)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x20)" ( (binary_expression "puVar26 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -0x18)" * (cast_expression "(char **)(puVar26 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar26 + -0x14)" * (cast_expression "(int *)(puVar26 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(uintmax_t *)(puVar26 + -8)" * (cast_expression "(uintmax_t *)(puVar26 + -8)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18c89;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18c89" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc));" (assignment_expression "iVar10 = gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier = (call_expression "gnu_mbswidth(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" identifier (argument_list "(*(char **)(puVar26 + -0x10),*(int *)(puVar26 + -0xc))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar26 + -0xc)" * (cast_expression "(int *)(puVar26 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar10 <= file_size_width) goto LAB_000182ec;" if (parenthesized_expression "(iVar10 <= file_size_width)" ( (binary_expression "iVar10 <= file_size_width" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }" else (compound_statement "{\nLAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar10 = file_size_width;\n    }" { (labeled_statement "LAB_000182df:\n      if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }" statement_identifier : (if_statement "if (print_scontext != false) {\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }" if (parenthesized_expression "(print_scontext != false)" ( (binary_expression "print_scontext != false" identifier != false) )) (compound_statement "{\nLAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;\n        *(undefined4 *)(puVar26 + -0x14) = 0x18570;\n        sVar13 = strlen(*(char **)(puVar26 + -0x10));\n        if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }\n        goto LAB_0001857f;\n      }" { (labeled_statement "LAB_0001855f:\n        *(char **)(puVar26 + -0x10) = local_330->scontext;" statement_identifier : (expression_statement "*(char **)(puVar26 + -0x10) = local_330->scontext;" (assignment_expression "*(char **)(puVar26 + -0x10) = local_330->scontext" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (field_expression "local_330->scontext" identifier -> field_identifier)) ;)) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18570;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18570" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (scontext_width < (int)sVar13) {\n          scontext_width = sVar13;\n        }" if (parenthesized_expression "(scontext_width < (int)sVar13)" ( (binary_expression "scontext_width < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          scontext_width = sVar13;\n        }" { (expression_statement "scontext_width = sVar13;" (assignment_expression "scontext_width = sVar13" identifier = identifier) ;) })) (goto_statement "goto LAB_0001857f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000182ec:\n      iVar10 = file_size_width;" statement_identifier : (expression_statement "iVar10 = file_size_width;" (assignment_expression "iVar10 = file_size_width" identifier = identifier) ;)) }))) (expression_statement "file_size_width = iVar10;" (assignment_expression "file_size_width = iVar10" identifier = identifier) ;) (if_statement "if (print_inode != false) {\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }" if (parenthesized_expression "(print_inode != false)" ( (binary_expression "print_inode != false" identifier != false) )) (compound_statement "{\n      *(char **)(puVar26 + -8) = buf;\n      pfVar8 = local_330;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);\n      *(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186cb;\n      pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));\n      *(char **)(puVar26 + -0x10) = pcVar12;\n      *(undefined4 *)(puVar26 + -0x14) = 0x186d3;\n      sVar13 = strlen(*(char **)(puVar26 + -0x10));\n      if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }\n    }" { (expression_statement "*(char **)(puVar26 + -8) = buf;" (assignment_expression "*(char **)(puVar26 + -8) = buf" (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pfVar8 = local_330;" (assignment_expression "pfVar8 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4);" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)((int)&(local_330->stat).st_ino + 4)" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(local_330->stat).st_ino + 4)" * (cast_expression "(undefined4 *)((int)&(local_330->stat).st_ino + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_330->stat).st_ino + 4)" ( (binary_expression "(int)&(local_330->stat).st_ino + 4" (cast_expression "(int)&(local_330->stat).st_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_330->stat).st_ino" & (field_expression "(local_330->stat).st_ino" (parenthesized_expression "(local_330->stat)" ( (field_expression "local_330->stat" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino;" (assignment_expression "*(int *)(puVar26 + -0x10) = (int)(pfVar8->stat).st_ino" (pointer_expression "*(int *)(puVar26 + -0x10)" * (cast_expression "(int *)(puVar26 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (cast_expression "(int)(pfVar8->stat).st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "(pfVar8->stat).st_ino" (parenthesized_expression "(pfVar8->stat)" ( (field_expression "pfVar8->stat" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x186cb;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x186cb" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8));" (assignment_expression "pcVar12 = umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier = (call_expression "umaxtostr(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" identifier (argument_list "(*(uintmax_t *)(puVar26 + -0x10),*(char **)(puVar26 + -8))" ( (pointer_expression "*(uintmax_t *)(puVar26 + -0x10)" * (cast_expression "(uintmax_t *)(puVar26 + -0x10)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar26 + -8)" * (cast_expression "(char **)(puVar26 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar26 + -0x10) = pcVar12;" (assignment_expression "*(char **)(puVar26 + -0x10) = pcVar12" (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x186d3;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x186d3" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar13 = strlen(*(char **)(puVar26 + -0x10));" (assignment_expression "sVar13 = strlen(*(char **)(puVar26 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (inode_number_width < (int)sVar13) {\n        inode_number_width = sVar13;\n      }" if (parenthesized_expression "(inode_number_width < (int)sVar13)" ( (binary_expression "inode_number_width < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        inode_number_width = sVar13;\n      }" { (expression_statement "inode_number_width = sVar13;" (assignment_expression "inode_number_width = sVar13" identifier = identifier) ;) })) })) }))) (labeled_statement "LAB_000182fb:\n  *(uint **)(puVar26 + -0x10) = local_338;" statement_identifier : (expression_statement "*(uint **)(puVar26 + -0x10) = local_338;" (assignment_expression "*(uint **)(puVar26 + -0x10) = local_338" (pointer_expression "*(uint **)(puVar26 + -0x10)" * (cast_expression "(uint **)(puVar26 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar26 + -0x14) = 0x18309;" (assignment_expression "*(undefined4 *)(puVar26 + -0x14) = 0x18309" (pointer_expression "*(undefined4 *)(puVar26 + -0x14)" * (cast_expression "(undefined4 *)(puVar26 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x14)" ( (binary_expression "puVar26 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar12 = xstrdup(*(char **)(puVar26 + -0x10));" (assignment_expression "pcVar12 = xstrdup(*(char **)(puVar26 + -0x10))" identifier = (call_expression "xstrdup(*(char **)(puVar26 + -0x10))" identifier (argument_list "(*(char **)(puVar26 + -0x10))" ( (pointer_expression "*(char **)(puVar26 + -0x10)" * (cast_expression "(char **)(puVar26 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "cwd_n_used = cwd_n_used + 1;" (assignment_expression "cwd_n_used = cwd_n_used + 1" identifier = (binary_expression "cwd_n_used + 1" identifier + number_literal)) ;) (expression_statement "local_330->name = pcVar12;" (assignment_expression "local_330->name = pcVar12" (field_expression "local_330->name" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0001831b:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar33,uVar28);\n  }" statement_identifier : (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar33,uVar28);\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return CONCAT44(uVar33,uVar28);\n  }" { (return_statement "return CONCAT44(uVar33,uVar28);" return (call_expression "CONCAT44(uVar33,uVar28)" identifier (argument_list "(uVar33,uVar28)" ( identifier , identifier ))) ;) }))) comment (expression_statement "*(undefined4 *)(puVar26 + -4) = 0x19152;" (assignment_expression "*(undefined4 *)(puVar26 + -4) = 0x19152" (pointer_expression "*(undefined4 *)(puVar26 + -4)" * (cast_expression "(undefined4 *)(puVar26 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    \n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}\n\n" (function_definition "undefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    \n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)" identifier (parameter_list "(uint *param_1,uint param_2,uint param_3,char *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    \n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "undefined1 auStack_35c [11];" type_identifier (array_declarator "auStack_35c [11]" identifier [ number_literal ]) ;) (declaration "char local_351;" primitive_type identifier ;) (declaration "uint *local_350;" type_identifier (pointer_declarator "*local_350" * identifier) ;) (declaration "uint local_34c;" type_identifier identifier ;) (declaration "char *local_348;" primitive_type (pointer_declarator "*local_348" * identifier) ;) (declaration "uint local_344;" type_identifier identifier ;) (declaration "uint local_340;" type_identifier identifier ;) (declaration "uint local_33c;" type_identifier identifier ;) (declaration "uint *local_338;" type_identifier (pointer_declarator "*local_338" * identifier) ;) (declaration "uint *local_334;" type_identifier (pointer_declarator "*local_334" * identifier) ;) (declaration "undefined4 *local_330;" type_identifier (pointer_declarator "*local_330" * identifier) ;) (declaration "undefined1 local_324 [16];" type_identifier (array_declarator "local_324 [16]" identifier [ number_literal ]) ;) (declaration "uint local_314;" type_identifier identifier ;) (declaration "undefined1 local_2c1 [21];" type_identifier (array_declarator "local_2c1 [21]" identifier [ number_literal ]) ;) (declaration "uint local_2ac [163];" type_identifier (array_declarator "local_2ac [163]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1809b;" (assignment_expression "uStack_14 = 0x1809b" identifier = number_literal) ;) (expression_statement "local_338 = param_1;" (assignment_expression "local_338 = param_1" identifier = identifier) ;) (expression_statement "local_344 = param_3;" (assignment_expression "local_344 = param_3" identifier = identifier) ;) (expression_statement "local_33c = param_2;" (assignment_expression "local_33c = param_2" identifier = identifier) ;) (expression_statement "local_348 = param_4;" (assignment_expression "local_348 = param_4" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" if (parenthesized_expression "(DAT_0003c358 == DAT_0003c35c)" ( (binary_expression "DAT_0003c358 == DAT_0003c35c" identifier == identifier) )) (compound_statement "{\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" { (if_statement "if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }" if (parenthesized_expression "(((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0))" ( (binary_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0)" ( (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110) < 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110)" ( (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) ))) < number_literal) )) || (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" ( (binary_expression "(ulonglong)DAT_0003c358 * 0x110 >> 0x20" (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) != number_literal) ))) )) (compound_statement "{\n                    \n      FUN_00024230();\n    }" { (expression_statement "FUN_00024230();" (call_expression "FUN_00024230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);" (assignment_expression "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" identifier = (call_expression "FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" identifier (argument_list "(DAT_0003c360,DAT_0003c358 * 0x110)" ( identifier , (binary_expression "DAT_0003c358 * 0x110" identifier * number_literal) )))) ;) (expression_statement "DAT_0003c35c = DAT_0003c35c << 1;" (assignment_expression "DAT_0003c35c = DAT_0003c35c << 1" identifier = (binary_expression "DAT_0003c35c << 1" identifier << number_literal)) ;) })) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar19 = auStack_35c;" (assignment_expression "puVar19 = auStack_35c" identifier = identifier) ;) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" identifier = identifier) ;) (expression_statement "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);" (assignment_expression "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" identifier = (cast_expression "(undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0003c360 + DAT_0003c358 * 0x88)" ( (binary_expression "DAT_0003c360 + DAT_0003c358 * 0x88" identifier + (binary_expression "DAT_0003c358 * 0x88" identifier * number_literal)) )))) ;) (expression_statement "*local_330 = 0;" (assignment_expression "*local_330 = 0" (pointer_expression "*local_330" * identifier) = number_literal) ;) (expression_statement "local_330[0x20] = 0;" (assignment_expression "local_330[0x20] = 0" (subscript_expression "local_330[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);" (assignment_expression "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330 + 1)" ( (binary_expression "local_330 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" for ( (assignment_expression "uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" identifier = (binary_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" (call_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" ( (binary_expression "(int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" (cast_expression "(int)local_330" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" ( (binary_expression "0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)" number_literal - (cast_expression "(int)((uint)(local_330 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_330 + 1)" ( (binary_expression "local_330 + 1" identifier + number_literal) ))) & number_literal) )))) ))) ))) >> number_literal)) ; (binary_expression "uVar16 != 0" identifier != number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" { (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (expression_statement "puVar23 = puVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "puVar23 = puVar23 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "puVar23 + (uint)bVar28 * -2 + 1" (binary_expression "puVar23 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_330[0x19] = 0;" (assignment_expression "local_330[0x19] = 0" (subscript_expression "local_330[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_330[0x1a] = 0;" (assignment_expression "local_330[0x1a] = 0" (subscript_expression "local_330[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar26 = DAT_0003c355 == '\0';" (assignment_expression "bVar26 = DAT_0003c355 == '\0'" identifier = (binary_expression "DAT_0003c355 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "local_330[0x21] = 0xffffffff;" (assignment_expression "local_330[0x21] = 0xffffffff" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_330[0x1b] = local_33c;" (assignment_expression "local_330[0x1b] = local_33c" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" if (parenthesized_expression "((bVar26) && (DAT_0003c354 != '\0'))" ( (binary_expression "(bVar26) && (DAT_0003c354 != '\0')" (parenthesized_expression "(bVar26)" ( identifier )) && (parenthesized_expression "(DAT_0003c354 != '\0')" ( (binary_expression "DAT_0003c354 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" { (expression_statement "bVar4 = FUN_00014c00();" (assignment_expression "bVar4 = FUN_00014c00()" identifier = (call_expression "FUN_00014c00()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_330[0x21] = (uint)bVar4;" (assignment_expression "local_330[0x21] = (uint)bVar4" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0003c355 = '\x01';\n    }" { (expression_statement "DAT_0003c355 = '\x01';" (assignment_expression "DAT_0003c355 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) })) (expression_statement "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);" (assignment_expression "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1)" identifier = (call_expression "CONCAT31(local_34c._1_3_,DAT_0003c2e1)" identifier (argument_list "(local_34c._1_3_,DAT_0003c2e1)" ( (field_expression "local_34c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }" { (if_statement "if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" if (parenthesized_expression "(DAT_0003c2e1 != '\0')" ( (binary_expression "DAT_0003c2e1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" { (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (if_statement "if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" if (parenthesized_expression "(cVar5 == '/')" ( (binary_expression "cVar5 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" else (compound_statement "{\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" { (expression_statement "cVar3 = *local_348;" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if (cVar3 != '\0') goto LAB_00018b15;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001896e;" goto statement_identifier ;) })) (if_statement "if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" if (parenthesized_expression "((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))))" ( (binary_expression "(DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" (parenthesized_expression "(DAT_0003c2a1 != '\0')" ( (binary_expression "DAT_0003c2a1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" ( (parenthesized_expression "((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))" ( (binary_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" (parenthesized_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0'))" ( (binary_expression "local_33c == 3 && (DAT_0003c2e2 != '\0')" (binary_expression "local_33c == 3" identifier == number_literal) && (parenthesized_expression "(DAT_0003c2e2 != '\0')" ( (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )))) )) )))) )) ))) )) ))) )) (compound_statement "{\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" { (labeled_statement "LAB_00018410:\n      cVar5 = (char)*local_338;" statement_identifier : (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;)) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;" if (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0'))" ( (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" ( (binary_expression "cVar5 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar3 = *local_348, cVar3 != '\0')" ( (comma_expression "cVar3 = *local_348, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) , (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00018b15;" goto statement_identifier ;)) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" identifier = (cast_expression "(char *)(local_330 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 3)" ( (binary_expression "local_330 + 3" identifier + number_literal) )))) ;) (if_statement "if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" if (parenthesized_expression "((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5))" ( (binary_expression "(DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)" (parenthesized_expression "(DAT_0003c2d0 < 3)" ( (binary_expression "DAT_0003c2d0 < 3" identifier < number_literal) )) || (parenthesized_expression "(DAT_0003c2d0 < 5)" ( (binary_expression "DAT_0003c2d0 < 5" identifier < number_literal) ))) )) (compound_statement "{\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" identifier = identifier) ;) }) (else_clause "else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" else (compound_statement "{\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" { (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 == 5) goto LAB_00018210;" if (parenthesized_expression "(DAT_0003c2d0 == 5)" ( (binary_expression "DAT_0003c2d0 == 5" identifier == number_literal) )) (goto_statement "goto LAB_00018210;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (if_statement "if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" if (parenthesized_expression "(DAT_0003c2d4 != '\0')" ( (binary_expression "DAT_0003c2d4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" if (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" ( (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" ( (binary_expression "local_33c == 6" identifier == number_literal) )) || (parenthesized_expression "(local_33c == 0)" ( (binary_expression "local_33c == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" { (labeled_statement "LAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" statement_identifier : (if_statement "if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" if (parenthesized_expression "((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))))" ( (binary_expression "(DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" (parenthesized_expression "(DAT_0003c2d0 != 5)" ( (binary_expression "DAT_0003c2d0 != 5" identifier != number_literal) )) && (parenthesized_expression "(((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" ( (parenthesized_expression "((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))" ( (binary_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')" (parenthesized_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0'))" ( (binary_expression "DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')" (binary_expression "DAT_0003c348 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(DAT_0003c2d5 == '\0')" ( (binary_expression "DAT_0003c2d5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(DAT_0003c2d4 == '\0')" ( (binary_expression "DAT_0003c2d4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" { (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (if_statement "if (local_33c != 0) goto LAB_000183a9;" if (parenthesized_expression "(local_33c != 0)" ( (binary_expression "local_33c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000183a9;" goto statement_identifier ;)) }))) })) (goto_statement "goto LAB_00018410;" goto statement_identifier ;) })) (if_statement "if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }" { (labeled_statement "LAB_00018fd0:\n      uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" else (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" { (if_statement "if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;" if (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" ( (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" ( (binary_expression "local_33c == 6" identifier == number_literal) )) || (parenthesized_expression "(local_33c == 0)" ( (binary_expression "local_33c == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00018f48;" goto statement_identifier ;)) (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" if (parenthesized_expression "(DAT_0003c2a0 == '\0')" ( (binary_expression "DAT_0003c2a0 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00018fd0;" goto statement_identifier ;)) (labeled_statement "LAB_000183a9:\n      uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;" if (parenthesized_expression "((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))" ( (binary_expression "(local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" (parenthesized_expression "(local_33c == 5)" ( (binary_expression "local_33c == 5" identifier == number_literal) )) && (parenthesized_expression "((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" ( (parenthesized_expression "(DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))" ( (binary_expression "DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" (binary_expression "DAT_0003c2e4 == 3" identifier == number_literal) || (parenthesized_expression "((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" ( (parenthesized_expression "(puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))" ( (comma_expression "puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" ( (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))" ( (binary_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )))) )) || (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" ( (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))" ( (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (binary_expression "cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" ( (comma_expression "cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) , (comma_expression "puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) )))) )) ))) )) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00018410;" goto statement_identifier ;)) }))) }) (else_clause "else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" else (compound_statement "{\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" { (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" identifier = (cast_expression "(char)*local_338" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_338" * identifier))) ;) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" identifier = identifier) ;) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) ;) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" if (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'))" ( (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" ( (binary_expression "cVar5 != '/'" identifier != (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" ( (comma_expression "cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" identifier = (pointer_expression "*local_348" * identifier)) , (comma_expression "puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "puVar20 = auStack_35c" identifier = identifier) , (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" { (labeled_statement "LAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" statement_identifier : (expression_statement "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" (assignment_expression "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5)" identifier = (cast_expression "(uint *)CONCAT31(local_350._1_3_,cVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_350._1_3_,cVar5)" identifier (argument_list "(local_350._1_3_,cVar5)" ( (field_expression "local_350._1_3_" identifier . field_identifier) , identifier ))))) ;)) (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" identifier = identifier) ;) (expression_statement "sVar8 = strlen((char *)local_338);" (assignment_expression "sVar8 = strlen((char *)local_338)" identifier = (call_expression "strlen((char *)local_338)" identifier (argument_list "((char *)local_338)" ( (cast_expression "(char *)local_338" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar15 = local_348;" (assignment_expression "pcVar15 = local_348" identifier = identifier) ;) (expression_statement "sVar10 = strlen(local_348);" (assignment_expression "sVar10 = strlen(local_348)" identifier = (call_expression "strlen(local_348)" identifier (argument_list "(local_348)" ( identifier )))) ;) (expression_statement "cVar5 = local_351;" (assignment_expression "cVar5 = local_351" identifier = identifier) ;) (expression_statement "cVar3 = (char)local_350;" (assignment_expression "cVar3 = (char)local_350" identifier = (cast_expression "(char)local_350" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);" (assignment_expression "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0)" identifier = (unary_expression "-(sVar8 + 0x1d + sVar10 & 0xfffffff0)" - (parenthesized_expression "(sVar8 + 0x1d + sVar10 & 0xfffffff0)" ( (binary_expression "sVar8 + 0x1d + sVar10 & 0xfffffff0" (binary_expression "sVar8 + 0x1d + sVar10" (binary_expression "sVar8 + 0x1d" identifier + number_literal) + identifier) & number_literal) )))) ;) (expression_statement "puVar20 = auStack_35c + iVar6;" (assignment_expression "puVar20 = auStack_35c + iVar6" identifier = (binary_expression "auStack_35c + iVar6" identifier + identifier)) ;) (expression_statement "local_334 = (uint *)((int)&local_350 + iVar6);" (assignment_expression "local_334 = (uint *)((int)&local_350 + iVar6)" identifier = (cast_expression "(uint *)((int)&local_350 + iVar6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_350 + iVar6)" ( (binary_expression "(int)&local_350 + iVar6" (cast_expression "(int)&local_350" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_350" & identifier)) + identifier) )))) ;) (if_statement "if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" if (parenthesized_expression "((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0'))" ( (binary_expression "(local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')" (parenthesized_expression "(local_351 != '.')" ( (binary_expression "local_351 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "(local_350 = local_334, pcVar15[1] != '\0')" ( (comma_expression "local_350 = local_334, pcVar15[1] != '\0'" (assignment_expression "local_350 = local_334" identifier = identifier) , (binary_expression "pcVar15[1] != '\0'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" { (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" identifier = identifier) ;) (expression_statement "pcVar9 = local_348;" (assignment_expression "pcVar9 = local_348" identifier = identifier) ;) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" identifier = identifier) ;) (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" { (expression_statement "cVar1 = cVar2;" (assignment_expression "cVar1 = cVar2" identifier = identifier) ;) (expression_statement "local_350 = (uint *)((int)puVar14 + 1);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)puVar14 = cVar5;" (assignment_expression "*(char *)puVar14 = cVar5" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (cVar1 == '\0') break;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = pcVar9 + 2;" (assignment_expression "pcVar15 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = local_350;" (assignment_expression "puVar14 = local_350" identifier = identifier) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "cVar5 = cVar1;" (assignment_expression "cVar5 = cVar1" identifier = identifier) ;) })) (if_statement "if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" if (parenthesized_expression "((local_348 < pcVar9 + 1) && (*pcVar9 != '/'))" ( (binary_expression "(local_348 < pcVar9 + 1) && (*pcVar9 != '/')" (parenthesized_expression "(local_348 < pcVar9 + 1)" ( (binary_expression "local_348 < pcVar9 + 1" identifier < (binary_expression "pcVar9 + 1" identifier + number_literal)) )) && (parenthesized_expression "(*pcVar9 != '/')" ( (binary_expression "*pcVar9 != '/'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" { (expression_statement "*(char *)local_350 = '/';" (assignment_expression "*(char *)local_350 = '/'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_350 = (uint *)((int)puVar14 + 2);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 2)" identifier = (cast_expression "(uint *)((int)puVar14 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 2)" ( (binary_expression "(int)puVar14 + 2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) (expression_statement "puVar14 = local_338;" (assignment_expression "puVar14 = local_338" identifier = identifier) ;) (if_statement "if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" { (do_statement "do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');" do (compound_statement "{\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        }" { (expression_statement "puVar11 = (uint *)((int)local_350 + 1);" (assignment_expression "puVar11 = (uint *)((int)local_350 + 1)" identifier = (cast_expression "(uint *)((int)local_350 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_350 + 1)" ( (binary_expression "(int)local_350 + 1" (cast_expression "(int)local_350" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)local_350 = cVar3;" (assignment_expression "*(char *)local_350 = cVar3" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "cVar3 = *(char *)((int)puVar14 + 1);" (assignment_expression "cVar3 = *(char *)((int)puVar14 + 1)" identifier = (pointer_expression "*(char *)((int)puVar14 + 1)" * (cast_expression "(char *)((int)puVar14 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_350 = puVar11;" (assignment_expression "local_350 = puVar11" identifier = identifier) ;) (expression_statement "puVar14 = (uint *)((int)puVar14 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "*(char *)local_350 = '\0';" (assignment_expression "*(char *)local_350 = '\0'" (pointer_expression "*(char *)local_350" * (cast_expression "(char *)local_350" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" if (parenthesized_expression "((char)local_34c != '\0')" ( (binary_expression "(char)local_34c != '\0'" (cast_expression "(char)local_34c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" { (labeled_statement "LAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1897e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1897e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001b7b0();" (assignment_expression "iVar6 = FUN_0001b7b0()" identifier = (call_expression "FUN_0001b7b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_330[2] = iVar6;" (assignment_expression "local_330[2] = iVar6" (subscript_expression "local_330[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "error canonicalizing %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "error canonicalizing %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""error canonicalizing %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189a5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189a5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189bb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189bb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar16 = DAT_0003c2d0;" (assignment_expression "uVar16 = DAT_0003c2d0" identifier = identifier) ;) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" identifier = (cast_expression "(char *)(local_330 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 3)" ( (binary_expression "local_330 + 3" identifier + number_literal) )))) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 < 3) goto LAB_00018470;" if (parenthesized_expression "(DAT_0003c2d0 < 3)" ( (binary_expression "DAT_0003c2d0 < 3" identifier < number_literal) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (if_statement "if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" if (parenthesized_expression "(DAT_0003c2d0 < 5)" ( (binary_expression "DAT_0003c2d0 < 5" identifier < number_literal) )) (compound_statement "{\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }" { (if_statement "if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" if (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" { (labeled_statement "LAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;" statement_identifier : (expression_statement "*(char **)(puVar21 + -8) = local_348;" (assignment_expression "*(char **)(puVar21 + -8) = local_348" (pointer_expression "*(char **)(puVar21 + -8)" * (cast_expression "(char **)(puVar21 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar21 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar21 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar21 + -0xc)" * (cast_expression "(uint **)(puVar21 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x18488;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x18488" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));" (assignment_expression "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" identifier = (call_expression "__lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" identifier (argument_list "(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" ( (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar21 + -0xc)" * (cast_expression "(char **)(puVar21 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar21 + -8)" * (cast_expression "(stat64 **)(puVar21 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" identifier = identifier) ;) (goto_statement "goto joined_r0x0001848d;" goto statement_identifier ;) })) (expression_statement "*(undefined4 **)(puVar20 + -8) = local_330 + 3;" (assignment_expression "*(undefined4 **)(puVar20 + -8) = local_330 + 3" (pointer_expression "*(undefined4 **)(puVar20 + -8)" * (cast_expression "(undefined4 **)(puVar20 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_330 + 3" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" * (cast_expression "(uint **)(puVar20 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189eb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189eb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" identifier (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" ( (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar20 + -8)" * (cast_expression "(stat64 **)(puVar20 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" if (parenthesized_expression "(uVar16 != 3)" ( (binary_expression "uVar16 != 3" identifier != number_literal) )) (compound_statement "{\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" { (if_statement "if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18f95;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18f95" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar12 != 2) goto LAB_00018f9e;" if (parenthesized_expression "(*piVar12 != 2)" ( (binary_expression "*piVar12 != 2" (pointer_expression "*piVar12" * identifier) != number_literal) )) (goto_statement "goto LAB_00018f9e;" goto statement_identifier ;)) }) (else_clause "else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" else (compound_statement "{\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" { (expression_statement "local_34c = local_330[7];" (assignment_expression "local_34c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;) (if_statement "if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;" if (parenthesized_expression "((local_330[7] & 0xf000) == 0x4000)" ( (binary_expression "(local_330[7] & 0xf000) == 0x4000" (parenthesized_expression "(local_330[7] & 0xf000)" ( (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00018a1e;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00018470;" goto statement_identifier ;) })) (labeled_statement "LAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" statement_identifier : (if_statement "if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" { (labeled_statement "LAB_00018f9e:\n        uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;) }))) (expression_statement "cVar5 = (char)local_344;" (assignment_expression "cVar5 = (char)local_344" identifier = (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" else (compound_statement "{\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" { (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (DAT_0003c2d0 != 5) goto LAB_00018470;" if (parenthesized_expression "(DAT_0003c2d0 != 5)" ( (binary_expression "DAT_0003c2d0 != 5" identifier != number_literal) )) (goto_statement "goto LAB_00018470;" goto statement_identifier ;)) (labeled_statement "LAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;" statement_identifier : (expression_statement "*(char **)(puVar19 + -8) = local_348;" (assignment_expression "*(char **)(puVar19 + -8) = local_348" (pointer_expression "*(char **)(puVar19 + -8)" * (cast_expression "(char **)(puVar19 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*(uint **)(puVar19 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar19 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar19 + -0xc)" * (cast_expression "(uint **)(puVar19 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" * (cast_expression "(undefined4 *)(puVar19 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x1822b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x1822b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" identifier (argument_list "(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" ( (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar19 + -0xc)" * (cast_expression "(char **)(puVar19 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar19 + -8)" * (cast_expression "(stat64 **)(puVar19 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) (labeled_statement "joined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" statement_identifier : (if_statement "if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot access %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184aa;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184aa" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184be;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184be" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_344 != '\0') goto LAB_0001831b;" if (parenthesized_expression "((char)local_344 != '\0')" ( (binary_expression "(char)local_344 != '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001831b;" goto statement_identifier ;)) (goto_statement "goto LAB_000182fb;" goto statement_identifier ;) }))) }))) (expression_statement "*(undefined1 *)(local_330 + 0x1e) = 1;" (assignment_expression "*(undefined1 *)(local_330 + 0x1e) = 1" (pointer_expression "*(undefined1 *)(local_330 + 0x1e)" * (cast_expression "(undefined1 *)(local_330 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 0x1e)" ( (binary_expression "local_330 + 0x1e" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" if (parenthesized_expression "(((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0'))" ( (binary_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')" (parenthesized_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000))" ( (binary_expression "(local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" (parenthesized_expression "(local_33c == 5)" ( (binary_expression "local_33c == 5" identifier == number_literal) )) || (parenthesized_expression "(local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" ( (comma_expression "local_33c = local_330[7], (local_33c & 0xf000) == 0x8000" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) , (binary_expression "(local_33c & 0xf000) == 0x8000" (parenthesized_expression "(local_33c & 0xf000)" ( (binary_expression "local_33c & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(DAT_0003c2e2 != '\0')" ( (binary_expression "DAT_0003c2e2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x188e7;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x188e7" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000146d0();" (assignment_expression "cVar3 = FUN_000146d0()" identifier = (call_expression "FUN_000146d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" { (expression_statement "iVar6 = local_330[3];" (assignment_expression "iVar6 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) (expression_statement "local_33c = local_330[4];" (assignment_expression "local_33c = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18906;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18906" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = DAT_0003b39c;" (assignment_expression "uVar16 = DAT_0003b39c" identifier = identifier) ;) (expression_statement "iVar13 = DAT_0003b398;" (assignment_expression "iVar13 = DAT_0003b398" identifier = identifier) ;) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (if_statement "if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" if (parenthesized_expression "(local_33c != uVar16 || iVar13 != iVar6)" ( (binary_expression "local_33c != uVar16 || iVar13 != iVar6" (binary_expression "local_33c != uVar16" identifier != identifier) || (binary_expression "iVar13 != iVar6" identifier != identifier)) )) (compound_statement "{\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" { (expression_statement "DAT_0003b39c = local_33c;" (assignment_expression "DAT_0003b39c = local_33c" identifier = identifier) ;) (expression_statement "DAT_0003b398 = iVar6;" (assignment_expression "DAT_0003b398 = iVar6" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(local_330 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(local_330 + 0x20) = 0" (pointer_expression "*(undefined1 *)(local_330 + 0x20)" * (cast_expression "(undefined1 *)(local_330 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_330 + 0x20)" ( (binary_expression "local_330 + 0x20" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" if (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c335 != '\0'))" ( (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c335 != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }" { (if_statement "if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" if (parenthesized_expression "(local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390)" ( (binary_expression "local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390" (binary_expression "local_330[4] == DAT_0003b394" (subscript_expression "local_330[4]" identifier [ number_literal ]) == identifier) && (binary_expression "local_330[3] == DAT_0003b390" (subscript_expression "local_330[3]" identifier [ number_literal ]) == identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eca;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eca" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "puVar23[0x1d] = &DAT_0003b1fa;" (assignment_expression "puVar23[0x1d] = &DAT_0003b1fa" (subscript_expression "puVar23[0x1d]" identifier [ number_literal ]) = (pointer_expression "&DAT_0003b1fa" & identifier)) ;) (labeled_statement "LAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" statement_identifier : (if_statement "if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) }))) (expression_statement "cVar5 = false;" (assignment_expression "cVar5 = false" identifier = false) ;) (labeled_statement "LAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" statement_identifier : (if_statement "if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" if (parenthesized_expression "(local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388)" ( (binary_expression "local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388" (binary_expression "local_330[4] == DAT_0003b38c" (subscript_expression "local_330[4]" identifier [ number_literal ]) == identifier) && (binary_expression "local_330[3] == DAT_0003b388" (subscript_expression "local_330[3]" identifier [ number_literal ]) == identifier)) )) (compound_statement "{\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }" { (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001900a:\n          uVar17 = 1;" statement_identifier : (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;)) (if_statement "if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" if (parenthesized_expression "((bool)cVar5 == false)" ( (binary_expression "(bool)cVar5 == false" (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "cVar5 = DAT_0003c334;" (assignment_expression "cVar5 = DAT_0003c334" identifier = identifier) ;) })) }) (else_clause "else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" else (compound_statement "{\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" { (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = local_348;" (assignment_expression "*(char **)(puVar20 + -0xc) = local_348" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = FUN_0001c190();" (assignment_expression "uVar16 = FUN_0001c190()" identifier = (call_expression "FUN_0001c190()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" { (expression_statement "uVar16 = uVar16 >> 0x1f;" (assignment_expression "uVar16 = uVar16 >> 0x1f" identifier = (binary_expression "uVar16 >> 0x1f" identifier >> number_literal)) ;) (if_statement "if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" if (parenthesized_expression "(((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f))" ( (binary_expression "((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)" (parenthesized_expression "((*piVar12 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(*piVar12 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(*piVar12 - 0x16U & 0xffffffef)" ( (binary_expression "*piVar12 - 0x16U & 0xffffffef" (binary_expression "*piVar12 - 0x16U" (pointer_expression "*piVar12" * identifier) - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*piVar12 == 0x5f)" ( (binary_expression "*piVar12 == 0x5f" (pointer_expression "*piVar12" * identifier) == number_literal) ))) )) (compound_statement "{\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" { (expression_statement "DAT_0003b388 = local_330[3];" (assignment_expression "DAT_0003b388 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) (expression_statement "DAT_0003b38c = local_330[4];" (assignment_expression "DAT_0003b38c = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_0001900a;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" identifier = number_literal) ;) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })))) (expression_statement "DAT_0003c334 = cVar5;" (assignment_expression "DAT_0003c334 = cVar5" identifier = identifier) ;) (expression_statement "local_330[0x1f] = uVar17;" (assignment_expression "local_330[0x1f] = uVar17" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" { (labeled_statement "LAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;" statement_identifier : (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar17 = FUN_000234e0();" (assignment_expression "uVar17 = FUN_000234e0()" identifier = (call_expression "FUN_000234e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18adb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18adb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0" (pointer_expression "*(undefined **)(puVar20 + -0x18)" * (cast_expression "(undefined **)(puVar20 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&DAT_0002fff0" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar20 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar20 + -0x1c)" * (cast_expression "(int *)(puVar20 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18aec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18aec" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "error();" (call_expression "error()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" else (compound_statement "{\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" { (if_statement "if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" { (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_330 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18732;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18732" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00028250();" (assignment_expression "iVar6 = FUN_00028250()" identifier = (call_expression "FUN_00028250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar6) goto LAB_0001873d;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_0001873d;" goto statement_identifier ;)) (labeled_statement "LAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18a57;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18a57" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "bVar26 = iVar6 == 0x5f;" (assignment_expression "bVar26 = iVar6 == 0x5f" identifier = (binary_expression "iVar6 == 0x5f" identifier == number_literal)) ;) (expression_statement "local_33c = CONCAT31(local_33c._1_3_,bVar26);" (assignment_expression "local_33c = CONCAT31(local_33c._1_3_,bVar26)" identifier = (call_expression "CONCAT31(local_33c._1_3_,bVar26)" identifier (argument_list "(local_33c._1_3_,bVar26)" ( (field_expression "local_33c._1_3_" identifier . field_identifier) , identifier )))) ;) (if_statement "if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" if (parenthesized_expression "(((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26))" ( (binary_expression "((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)" (parenthesized_expression "((iVar6 - 0x16U & 0xffffffef) == 0)" ( (binary_expression "(iVar6 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(iVar6 - 0x16U & 0xffffffef)" ( (binary_expression "iVar6 - 0x16U & 0xffffffef" (binary_expression "iVar6 - 0x16U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar26)" ( identifier ))) )) (compound_statement "{\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" { (expression_statement "DAT_0003b394 = local_330[4];" (assignment_expression "DAT_0003b394 = local_330[4]" identifier = (subscript_expression "local_330[4]" identifier [ number_literal ])) ;) (expression_statement "DAT_0003b390 = local_330[3];" (assignment_expression "DAT_0003b390 = local_330[3]" identifier = (subscript_expression "local_330[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_330[0x1d] = &DAT_0003b1fa;" (assignment_expression "local_330[0x1d] = &DAT_0003b1fa" (subscript_expression "local_330[0x1d]" identifier [ number_literal ]) = (pointer_expression "&DAT_0003b1fa" & identifier)) ;) (if_statement "if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;" if (parenthesized_expression "((iVar6 == 0x3d) || (bVar26))" ( (binary_expression "(iVar6 == 0x3d) || (bVar26)" (parenthesized_expression "(iVar6 == 0x3d)" ( (binary_expression "iVar6 == 0x3d" identifier == number_literal) )) || (parenthesized_expression "(bVar26)" ( identifier ))) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018ac2;" goto statement_identifier ;) })) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_330 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18a47;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18a47" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00028280();" (assignment_expression "iVar6 = FUN_00028280()" identifier = (call_expression "FUN_00028280()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 < 0) goto LAB_00018a52;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018a52;" goto statement_identifier ;)) (labeled_statement "LAB_0001873d:\n        bVar27 = iVar6 == 0;" statement_identifier : (expression_statement "bVar27 = iVar6 == 0;" (assignment_expression "bVar27 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;)) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)"unlabeled";" (assignment_expression "pbVar22 = (byte *)"unlabeled"" identifier = (cast_expression "(byte *)"unlabeled"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""unlabeled"" " string_content "))) ;) (expression_statement "pbVar25 = (byte *)local_330[0x1d];" (assignment_expression "pbVar25 = (byte *)local_330[0x1d]" identifier = (cast_expression "(byte *)local_330[0x1d]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[0x1d]" identifier [ number_literal ]))) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar22 < *pbVar25;" (assignment_expression "bVar26 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar27 = *pbVar22 == *pbVar25;" (assignment_expression "bVar27 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "cVar5 = (!bVar26 && !bVar27) != bVar26;" (assignment_expression "cVar5 = (!bVar26 && !bVar27) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar27) != bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" ( (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) != identifier)) ;) (if_statement "if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" if (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18ca5;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18ca5" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00018ca7;" goto statement_identifier ;) })) (if_statement "if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" if (parenthesized_expression "((!bVar26 && !bVar27) == bVar26)" ( (binary_expression "(!bVar26 && !bVar27) == bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" ( (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" { (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00018287;" goto statement_identifier ;) })) (expression_statement "local_330[0x1f] = 1;" (assignment_expression "local_330[0x1f] = 1" (subscript_expression "local_330[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "DAT_0003c334 = '\x01';" (assignment_expression "DAT_0003c334 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" identifier = (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(uVar16 != 0xa000)" ( (binary_expression "uVar16 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (if_statement "if (DAT_0003c308 != 0) goto LAB_00018da0;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018da0;" goto statement_identifier ;)) (labeled_statement "LAB_000187b9:\n      puVar23 = local_330;" statement_identifier : (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_330[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187d0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187d0" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar15 = (char *)FUN_0001b280();" (assignment_expression "pcVar15 = (char *)FUN_0001b280()" identifier = (cast_expression "(char *)FUN_0001b280()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b280()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar23[1] = pcVar15;" (assignment_expression "puVar23[1] = pcVar15" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (string_literal ""cannot read symbolic link %s"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19043;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19043" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19059;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19059" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (char *)local_330[1];" (assignment_expression "pcVar15 = (char *)local_330[1]" identifier = (cast_expression "(char *)local_330[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[1]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_000187e0;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187e0;" goto statement_identifier ;)) (labeled_statement "LAB_0001906d:\n        iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" statement_identifier : (if_statement "if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" if (parenthesized_expression "(*pcVar15 == '/')" ( (binary_expression "*pcVar15 == '/'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }" { (labeled_statement "LAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;" statement_identifier : (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18f21;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18f21" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00024200();" (assignment_expression "iVar6 = FUN_00024200()" identifier = (call_expression "FUN_00024200()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" else (compound_statement "{\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" { (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187f7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187f7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = FUN_0001c010();" (assignment_expression "uVar16 = FUN_0001c010()" identifier = (call_expression "FUN_0001c010()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar16 == 0) goto LAB_00018f18;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f18;" goto statement_identifier ;)) (expression_statement "local_33c = uVar16;" (assignment_expression "local_33c = uVar16" identifier = identifier) ;) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18811;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18811" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;" (assignment_expression "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_33c + 2 + sVar8" (binary_expression "local_33c + 2" identifier + number_literal) + identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18823;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18823" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00023f30();" (assignment_expression "iVar6 = FUN_00023f30()" identifier = (call_expression "FUN_00023f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = local_33c;" (assignment_expression "uVar16 = local_33c" identifier = identifier) ;) (if_statement "if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }" if (parenthesized_expression "(*(char *)((int)local_334 + (local_33c - 1)) != '/')" ( (binary_expression "*(char *)((int)local_334 + (local_33c - 1)) != '/'" (pointer_expression "*(char *)((int)local_334 + (local_33c - 1))" * (cast_expression "(char *)((int)local_334 + (local_33c - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_334 + (local_33c - 1))" ( (binary_expression "(int)local_334 + (local_33c - 1)" (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_33c - 1)" ( (binary_expression "local_33c - 1" identifier - number_literal) ))) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n            uVar16 = local_33c + 1;\n          }" { (expression_statement "uVar16 = local_33c + 1;" (assignment_expression "uVar16 = local_33c + 1" identifier = (binary_expression "local_33c + 1" identifier + number_literal)) ;) })) (expression_statement "*(uint *)(puVar20 + -8) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -8) = uVar16" (pointer_expression "*(uint *)(puVar20 + -8)" * (cast_expression "(uint *)(puVar20 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" * (cast_expression "(uint **)(puVar20 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1884e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1884e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));" (assignment_expression "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" identifier = (call_expression "stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" identifier (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar20 + -8)" * (cast_expression "(size_t *)(puVar20 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char **)(puVar20 + -0xc) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0xc) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar9;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar9" (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18857;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18857" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));" (call_expression "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" identifier (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) ))) ;) })))) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_0001906d;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001906d;" goto statement_identifier ;)) (if_statement "if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" if (parenthesized_expression "(local_330[0x21] == 0)" ( (binary_expression "local_330[0x21] == 0" (subscript_expression "local_330[0x21]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x1911a;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x1911a" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar5 = FUN_00014c00();" (assignment_expression "cVar5 = FUN_00014c00()" identifier = (call_expression "FUN_00014c00()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar23[0x21] = 0xffffffff;\n          }" { (expression_statement "puVar23[0x21] = 0xffffffff;" (assignment_expression "puVar23[0x21] = 0xffffffff" (subscript_expression "puVar23[0x21]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" if (parenthesized_expression "((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0'))" ( (binary_expression "(1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')" (parenthesized_expression "(1 < DAT_0003c2e4)" ( (binary_expression "1 < DAT_0003c2e4" number_literal < identifier) )) || (parenthesized_expression "(DAT_0003c2d5 != '\0')" ( (binary_expression "DAT_0003c2d5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" { (expression_statement "*(undefined1 **)(puVar20 + -8) = local_324;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_324" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0xc) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar6" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" identifier = (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" identifier (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" ( (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar20 + -0xc)" * (cast_expression "(char **)(puVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(stat64 **)(puVar20 + -8)" * (cast_expression "(stat64 **)(puVar20 + -8)" ( (type_descriptor "stat64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" { (expression_statement "*(undefined1 *)((int)local_330 + 0x79) = 1;" (assignment_expression "*(undefined1 *)((int)local_330 + 0x79) = 1" (pointer_expression "*(undefined1 *)((int)local_330 + 0x79)" * (cast_expression "(undefined1 *)((int)local_330 + 0x79)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_330 + 0x79)" ( (binary_expression "(int)local_330 + 0x79" (cast_expression "(int)local_330" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }" if (parenthesized_expression "((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000))" ( (binary_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)" (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0))" ( (binary_expression "((char)local_344 == '\0') || (DAT_0003c308 == 0)" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((local_314 & 0xf000) != 0x4000)" ( (binary_expression "(local_314 & 0xf000) != 0x4000" (parenthesized_expression "(local_314 & 0xf000)" ( (binary_expression "local_314 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              local_330[0x1c] = local_314;\n            }" { (expression_statement "local_330[0x1c] = local_314;" (assignment_expression "local_330[0x1c] = local_314" (subscript_expression "local_330[0x1c]" identifier [ number_literal ]) = identifier) ;) })) })) })) }))) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18899;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18899" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(puVar20 + -0x10));" (call_expression "free(*(void **)(puVar20 + -0x10))" identifier (argument_list "(*(void **)(puVar20 + -0x10))" ( (pointer_expression "*(void **)(puVar20 + -0x10)" * (cast_expression "(void **)(puVar20 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" identifier = (cast_expression "(uint *)local_330[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (uint)local_330[7] & 0xf000;" (assignment_expression "uVar16 = (uint)local_330[7] & 0xf000" identifier = (binary_expression "(uint)local_330[7] & 0xf000" (cast_expression "(uint)local_330[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_330[7]" identifier [ number_literal ])) & number_literal)) ;) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" if (parenthesized_expression "(uVar16 != 0xa000)" ( (binary_expression "uVar16 != 0xa000" identifier != number_literal) )) (goto_statement "goto LAB_000182a0;" goto statement_identifier ;)) (labeled_statement "LAB_000188bb:\n      local_330[0x1b] = 6;" statement_identifier : (expression_statement "local_330[0x1b] = 6;" (assignment_expression "local_330[0x1b] = 6" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" else (compound_statement "{\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" { (labeled_statement "LAB_00018287:\n      local_33c = local_330[7];" statement_identifier : (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" identifier = (subscript_expression "local_330[7]" identifier [ number_literal ])) ;)) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" identifier = (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" if (parenthesized_expression "(uVar16 == 0xa000)" ( (binary_expression "uVar16 == 0xa000" identifier == number_literal) )) (compound_statement "{\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" { (labeled_statement "LAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" statement_identifier : (if_statement "if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" if (parenthesized_expression "(DAT_0003c2d5 != '\0')" ( (binary_expression "DAT_0003c2d5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000187b9;" goto statement_identifier ;))) (goto_statement "goto LAB_000188bb;" goto statement_identifier ;) })) (labeled_statement "LAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" statement_identifier : (if_statement "if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" if (parenthesized_expression "(uVar16 == 0x4000)" ( (binary_expression "uVar16 == 0x4000" identifier == number_literal) )) (compound_statement "{\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }" { (if_statement "if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }" if (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c2cd != '\0'))" ( (binary_expression "((char)local_344 == '\0') || (DAT_0003c2cd != '\0')" (parenthesized_expression "((char)local_344 == '\0')" ( (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_0003c2cd != '\0')" ( (binary_expression "DAT_0003c2cd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          local_330[0x1b] = 3;\n        }" { (expression_statement "local_330[0x1b] = 3;" (assignment_expression "local_330[0x1b] = 3" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_330[0x1b] = 9;\n        }" else (compound_statement "{\n          local_330[0x1b] = 9;\n        }" { (expression_statement "local_330[0x1b] = 9;" (assignment_expression "local_330[0x1b] = 9" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n        local_330[0x1b] = 5;\n      }" else (compound_statement "{\n        local_330[0x1b] = 5;\n      }" { (expression_statement "local_330[0x1b] = 5;" (assignment_expression "local_330[0x1b] = 5" (subscript_expression "local_330[0x1b]" identifier [ number_literal ]) = number_literal) ;) })))) }))) (expression_statement "uVar17 = local_330[0x11];" (assignment_expression "uVar17 = local_330[0x11]" identifier = (subscript_expression "local_330[0x11]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = local_330[0x12];" (assignment_expression "uVar24 = local_330[0x12]" identifier = (subscript_expression "local_330[0x12]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" if (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0'))" ( (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" ( (binary_expression "DAT_0003c308 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0003c2fc != '\0')" ( (binary_expression "DAT_0003c2fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x200;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x200" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" * (cast_expression "(uint **)(puVar20 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = uVar24;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = uVar24" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18505;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18505" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" identifier = (call_expression "FUN_0001df30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18510;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18510" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" identifier = (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }" if (parenthesized_expression "(DAT_0003c32c < iVar6)" ( (binary_expression "DAT_0003c32c < iVar6" identifier < identifier) )) (compound_statement "{\n        DAT_0003c32c = iVar6;\n      }" { (expression_statement "DAT_0003c32c = iVar6;" (assignment_expression "DAT_0003c32c = iVar6" identifier = identifier) ;) })) (if_statement "if (DAT_0003c308 != 0) goto LAB_000182df;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000182df;" goto statement_identifier ;)) (if_statement "if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" if (parenthesized_expression "(DAT_0003b1f9 != '\0')" ( (binary_expression "DAT_0003b1f9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eae;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eae" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" identifier = (call_expression "FUN_00018000()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }" if (parenthesized_expression "(DAT_0003c320 < iVar6)" ( (binary_expression "DAT_0003c320 < iVar6" identifier < identifier) )) (compound_statement "{\n          DAT_0003c320 = iVar6;\n        }" { (expression_statement "DAT_0003c320 = iVar6;" (assignment_expression "DAT_0003c320 = iVar6" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" if (parenthesized_expression "(DAT_0003b1f8 != '\0')" ( (binary_expression "DAT_0003b1f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" { (expression_statement "uVar16 = local_330[10];" (assignment_expression "uVar16 = local_330[10]" identifier = (subscript_expression "local_330[10]" identifier [ number_literal ])) ;) (if_statement "if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" if (parenthesized_expression "(DAT_0003c2fd == '\0')" ( (binary_expression "DAT_0003c2fd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }" { (expression_statement "local_344 = uVar16;" (assignment_expression "local_344 = uVar16" identifier = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190df;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190df" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001f1e0();" (assignment_expression "iVar6 = FUN_0001f1e0()" identifier = (call_expression "FUN_0001f1e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = local_344;" (assignment_expression "uVar16 = local_344" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_00018e2e;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e2e;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar15 = (char *)FUN_0001fb50();" (assignment_expression "pcVar15 = (char *)FUN_0001fb50()" identifier = (cast_expression "(char *)FUN_0001fb50()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }" if (parenthesized_expression "((int)pcVar15 < 0)" ( (binary_expression "(int)pcVar15 < 0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pcVar15 = (char *)0x0;\n          }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" else (compound_statement "{\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" { (labeled_statement "LAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;" statement_identifier : (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b" (pointer_expression "*(undefined **)(puVar20 + -0x14)" * (cast_expression "(undefined **)(puVar20 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&DAT_0002d97b" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0xb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0xb" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)(puVar20 + -0x20) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x20) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x20)" * (cast_expression "(uint **)(puVar20 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18e48;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18e48" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__sprintf_chk();" (call_expression "__sprintf_chk()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" identifier = identifier) ;) (do_statement "do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);" do (compound_statement "{\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          }" { (expression_statement "puVar11 = puVar14;" (assignment_expression "puVar11 = puVar14" identifier = identifier) ;) (expression_statement "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11" identifier = (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" * identifier) + number_literal) & (unary_expression "~*puVar11" ~ (pointer_expression "*puVar11" * identifier)))) ;) (expression_statement "uVar16 = uVar18 & 0x80808080;" (assignment_expression "uVar16 = uVar18 & 0x80808080" identifier = (binary_expression "uVar18 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar14 = puVar11 + 1;" (assignment_expression "puVar14 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) ;) (expression_statement "bVar26 = (uVar18 & 0x8080) == 0;" (assignment_expression "bVar26 = (uVar18 & 0x8080) == 0" identifier = (binary_expression "(uVar18 & 0x8080) == 0" (parenthesized_expression "(uVar18 & 0x8080)" ( (binary_expression "uVar18 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n            uVar16 = uVar16 >> 0x10;\n          }" { (expression_statement "uVar16 = uVar16 >> 0x10;" (assignment_expression "uVar16 = uVar16 >> 0x10" identifier = (binary_expression "uVar16 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" { (expression_statement "puVar14 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar14 = (uint *)((int)puVar11 + 6)" identifier = (cast_expression "(uint *)((int)puVar11 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));" (assignment_expression "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" identifier = (cast_expression "(char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" ( (binary_expression "(int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar16,(byte)uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar16,(byte)uVar16)" identifier (argument_list "((byte)uVar16,(byte)uVar16)" ( (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_334" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) }))) (if_statement "if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }" if (parenthesized_expression "((int)DAT_0003c31c < (int)pcVar15)" ( (binary_expression "(int)DAT_0003c31c < (int)pcVar15" (cast_expression "(int)DAT_0003c31c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c31c = pcVar15;\n        }" { (expression_statement "DAT_0003c31c = pcVar15;" (assignment_expression "DAT_0003c31c = pcVar15" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" if (parenthesized_expression "(DAT_0003c2fe != '\0')" ( (binary_expression "DAT_0003c2fe != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18dfe;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18dfe" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" identifier = (call_expression "FUN_00018000()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }" if (parenthesized_expression "(DAT_0003c318 < iVar6)" ( (binary_expression "DAT_0003c318 < iVar6" identifier < identifier) )) (compound_statement "{\n          DAT_0003c318 = iVar6;\n        }" { (expression_statement "DAT_0003c318 = iVar6;" (assignment_expression "DAT_0003c318 = iVar6" identifier = identifier) ;) })) })) (if_statement "if (DAT_0003c335 != '\0') goto LAB_0001855f;" if (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001855f;" goto statement_identifier ;)) (labeled_statement "LAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;" statement_identifier : (if_statement "if (DAT_0003c308 != 0) goto LAB_000182ec;" if (parenthesized_expression "(DAT_0003c308 != 0)" ( (binary_expression "DAT_0003c308 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;))) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_2c1;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_2c1" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = local_330[8];" (assignment_expression "uVar7 = local_330[8]" identifier = (subscript_expression "local_330[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185b1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185b1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }" if (parenthesized_expression "((int)DAT_0003c328 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c328 < (int)sVar8" (cast_expression "(int)DAT_0003c328" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        DAT_0003c328 = sVar8;\n      }" { (expression_statement "DAT_0003c328 = sVar8;" (assignment_expression "DAT_0003c328 = sVar8" identifier = identifier) ;) })) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" identifier = (cast_expression "(uint *)local_330[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_330[7]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" if (parenthesized_expression "(((uint)local_334 & 0xb000) == 0x2000)" ( (binary_expression "((uint)local_334 & 0xb000) == 0x2000" (parenthesized_expression "((uint)local_334 & 0xb000)" ( (binary_expression "(uint)local_334 & 0xb000" (cast_expression "(uint)local_334" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" { (expression_statement "uVar16 = local_330[0xc];" (assignment_expression "uVar16 = local_330[0xc]" identifier = (subscript_expression "local_330[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = local_330[0xb];" (assignment_expression "uVar18 = local_330[0xb]" identifier = (subscript_expression "local_330[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_344 = uVar18;" (assignment_expression "local_344 = uVar18" identifier = identifier) ;) (expression_statement "local_340 = uVar16;" (assignment_expression "local_340 = uVar16" identifier = identifier) ;) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (binary_expression "uVar18 >> 8 & 0xfff" (binary_expression "uVar18 >> 8" identifier >> number_literal) & number_literal) | (binary_expression "uVar16 & 0xfffff000" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18623;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18623" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1862b;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1862b" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c314 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c314 < (int)sVar8" (cast_expression "(int)DAT_0003c314" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c314 = sVar8;\n        }" { (expression_statement "DAT_0003c314 = sVar8;" (assignment_expression "DAT_0003c314 = sVar8" identifier = identifier) ;) })) (expression_statement "iVar6 = local_330[0xc];" (assignment_expression "iVar6 = local_330[0xc]" identifier = (subscript_expression "local_330[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = local_330[0xb];" (assignment_expression "uVar16 = local_330[0xb]" identifier = (subscript_expression "local_330[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;" (assignment_expression "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uint3)" ( identifier ))) (argument_list "((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" ( (binary_expression "(uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)" (call_expression "(uint3)(uVar16 >> 0x14)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) ))) | (call_expression "(uint3)((uint)(iVar6 << 0x14) >> 8)" (parenthesized_expression "(uint3)" ( identifier )) (argument_list "((uint)(iVar6 << 0x14) >> 8)" ( (binary_expression "(uint)(iVar6 << 0x14) >> 8" (call_expression "(uint)(iVar6 << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 << 0x14)" ( (binary_expression "iVar6 << 0x14" identifier << number_literal) ))) >> number_literal) )))) ))) << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18665;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18665" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1866d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1866d" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c310 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c310 < (int)sVar8" (cast_expression "(int)DAT_0003c310" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c310 = sVar8;\n        }" { (expression_statement "DAT_0003c310 = sVar8;" (assignment_expression "DAT_0003c310 = sVar8" identifier = identifier) ;) })) (expression_statement "iVar6 = DAT_0003c310 + 2 + DAT_0003c314;" (assignment_expression "iVar6 = DAT_0003c310 + 2 + DAT_0003c314" identifier = (binary_expression "DAT_0003c310 + 2 + DAT_0003c314" (binary_expression "DAT_0003c310 + 2" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" if (parenthesized_expression "(iVar6 <= DAT_0003c30c)" ( (binary_expression "iVar6 <= DAT_0003c30c" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" else (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" { (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" * (cast_expression "(uint **)(puVar20 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf]" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (subscript_expression "local_330[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" * (cast_expression "(undefined4 *)(puVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = (subscript_expression "puVar23[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" identifier = (call_expression "FUN_0001df30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" identifier = (call_expression "FUN_0001fb50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" if (parenthesized_expression "(iVar6 <= DAT_0003c30c)" ( (binary_expression "iVar6 <= DAT_0003c30c" identifier <= identifier) )) (goto_statement "goto LAB_000182ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" else (compound_statement "{\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" { (labeled_statement "LAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" statement_identifier : (if_statement "if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" if (parenthesized_expression "(DAT_0003c335 != '\0')" ( (binary_expression "DAT_0003c335 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" { (labeled_statement "LAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" statement_identifier : (expression_statement "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_330[0x1d]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18570;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18570" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }" if (parenthesized_expression "((int)DAT_0003c324 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c324 < (int)sVar8" (cast_expression "(int)DAT_0003c324" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_0003c324 = sVar8;\n        }" { (expression_statement "DAT_0003c324 = sVar8;" (assignment_expression "DAT_0003c324 = sVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_0001857f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000182ec:\n      iVar6 = DAT_0003c30c;" statement_identifier : (expression_statement "iVar6 = DAT_0003c30c;" (assignment_expression "iVar6 = DAT_0003c30c" identifier = identifier) ;)) }))) (expression_statement "DAT_0003c30c = iVar6;" (assignment_expression "DAT_0003c30c = iVar6" identifier = identifier) ;) (if_statement "if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" if (parenthesized_expression "(DAT_0003c2d4 != '\0')" ( (binary_expression "DAT_0003c2d4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" { (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" * (cast_expression "(uint **)(puVar20 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_330[0x1a]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (subscript_expression "puVar23[0x19]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186cb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186cb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" identifier = (call_expression "FUN_0001f470()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186d3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186d3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x10))" identifier (argument_list "(*(char **)(puVar20 + -0x10))" ( (pointer_expression "*(char **)(puVar20 + -0x10)" * (cast_expression "(char **)(puVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }" if (parenthesized_expression "((int)DAT_0003c330 < (int)sVar8)" ( (binary_expression "(int)DAT_0003c330 < (int)sVar8" (cast_expression "(int)DAT_0003c330" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        DAT_0003c330 = sVar8;\n      }" { (expression_statement "DAT_0003c330 = sVar8;" (assignment_expression "DAT_0003c330 = sVar8" identifier = identifier) ;) })) })) }))) (labeled_statement "LAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;" statement_identifier : (expression_statement "*(uint **)(puVar20 + -0x10) = local_338;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_338" (pointer_expression "*(uint **)(puVar20 + -0x10)" * (cast_expression "(uint **)(puVar20 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18309;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18309" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00024200();" (assignment_expression "uVar7 = FUN_00024200()" identifier = (call_expression "FUN_00024200()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0003c358 = DAT_0003c358 + 1;" (assignment_expression "DAT_0003c358 = DAT_0003c358 + 1" identifier = (binary_expression "DAT_0003c358 + 1" identifier + number_literal)) ;) (expression_statement "*local_330 = uVar7;" (assignment_expression "*local_330 = uVar7" (pointer_expression "*local_330" * identifier) = identifier) ;) (labeled_statement "LAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return CONCAT44(uVar24,uVar17);\n  }" { (return_statement "return CONCAT44(uVar24,uVar17);" return (call_expression "CONCAT44(uVar24,uVar17)" identifier (argument_list "(uVar24,uVar17)" ( identifier , identifier ))) ;) }))) (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x19152;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x19152" (pointer_expression "*(undefined4 *)(puVar20 + -4)" * (cast_expression "(undefined4 *)(puVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b190();" (call_expression "FUN_0002b190()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) >> LIT) ))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ))) ))) >> LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) )))) )) )))) )) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (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 (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) )))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (char_literal ' escape_sequence ')))) )))) )) ))) )) )))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (char_literal ' escape_sequence ')))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' character ')) ;) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (do_statement do (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' escape_sequence ')) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (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 (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (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 IDENT = (char_literal ' escape_sequence ')) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 IDENT = (char_literal ' escape_sequence ')) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) && (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) && (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == BOOL) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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) )))) = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( IDENT ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) != (char_literal ' character ')) )) (compound_statement { (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 (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (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) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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 *)) ) (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) )))) = LIT) ;) (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 (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 *)) ) (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (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) )))) = 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 (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression 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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression IDENT >> LIT) & 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ))) << 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (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) )))) = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }))) (labeled_statement statement_identifier : (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined8 __regparm3 FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    \n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" (type_identifier "undefined8") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00018090(uint *param_1,uint param_2,uint param_3,char *param_4)" (identifier "FUN_00018090") (parameter_list "(uint *param_1,uint param_2,uint param_3,char *param_4)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  char *pcVar9;\n  size_t sVar10;\n  uint *puVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  byte *pbVar25;\n  int in_GS_OFFSET;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined1 auStack_35c [11];\n  char local_351;\n  uint *local_350;\n  uint local_34c;\n  char *local_348;\n  uint local_344;\n  uint local_340;\n  uint local_33c;\n  uint *local_338;\n  uint *local_334;\n  undefined4 *local_330;\n  undefined1 local_324 [16];\n  uint local_314;\n  undefined1 local_2c1 [21];\n  uint local_2ac [163];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar28 = 0;\n  uStack_14 = 0x1809b;\n  local_338 = param_1;\n  local_344 = param_3;\n  local_33c = param_2;\n  local_348 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }\n  puVar20 = auStack_35c;\n  puVar19 = auStack_35c;\n  puVar21 = auStack_35c;\n  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);\n  *local_330 = 0;\n  local_330[0x20] = 0;\n  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);\n  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }\n  local_330[0x19] = 0;\n  local_330[0x1a] = 0;\n  bVar26 = DAT_0003c355 == '\0';\n  local_330[0x21] = 0xffffffff;\n  local_330[0x1b] = local_33c;\n  if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }\n  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);\n  if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }\nLAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;\n  *(undefined4 *)(puVar20 + -0x14) = 0x18309;\n  uVar7 = FUN_00024200();\n  DAT_0003c358 = DAT_0003c358 + 1;\n  *local_330 = uVar7;\nLAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }\n                    \n  *(undefined4 *)(puVar20 + -4) = 0x19152;\n  FUN_0002b190();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "byte *pbVar25;" (type_identifier "byte") (pointer_declarator "*pbVar25" (* "*") (identifier "pbVar25")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "byte bVar28;" (type_identifier "byte") (identifier "bVar28") (; ";")) (declaration "undefined1 auStack_35c [11];" (type_identifier "undefined1") (array_declarator "auStack_35c [11]" (identifier "auStack_35c") ([ "[") (number_literal "11") (] "]")) (; ";")) (declaration "char local_351;" (primitive_type "char") (identifier "local_351") (; ";")) (declaration "uint *local_350;" (type_identifier "uint") (pointer_declarator "*local_350" (* "*") (identifier "local_350")) (; ";")) (declaration "uint local_34c;" (type_identifier "uint") (identifier "local_34c") (; ";")) (declaration "char *local_348;" (primitive_type "char") (pointer_declarator "*local_348" (* "*") (identifier "local_348")) (; ";")) (declaration "uint local_344;" (type_identifier "uint") (identifier "local_344") (; ";")) (declaration "uint local_340;" (type_identifier "uint") (identifier "local_340") (; ";")) (declaration "uint local_33c;" (type_identifier "uint") (identifier "local_33c") (; ";")) (declaration "uint *local_338;" (type_identifier "uint") (pointer_declarator "*local_338" (* "*") (identifier "local_338")) (; ";")) (declaration "uint *local_334;" (type_identifier "uint") (pointer_declarator "*local_334" (* "*") (identifier "local_334")) (; ";")) (declaration "undefined4 *local_330;" (type_identifier "undefined4") (pointer_declarator "*local_330" (* "*") (identifier "local_330")) (; ";")) (declaration "undefined1 local_324 [16];" (type_identifier "undefined1") (array_declarator "local_324 [16]" (identifier "local_324") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint local_314;" (type_identifier "uint") (identifier "local_314") (; ";")) (declaration "undefined1 local_2c1 [21];" (type_identifier "undefined1") (array_declarator "local_2c1 [21]" (identifier "local_2c1") ([ "[") (number_literal "21") (] "]")) (; ";")) (declaration "uint local_2ac [163];" (type_identifier "uint") (array_declarator "local_2ac [163]" (identifier "local_2ac") ([ "[") (number_literal "163") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" (identifier "bVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x1809b;" (assignment_expression "uStack_14 = 0x1809b" (identifier "uStack_14") (= "=") (number_literal "0x1809b")) (; ";")) (expression_statement "local_338 = param_1;" (assignment_expression "local_338 = param_1" (identifier "local_338") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_344 = param_3;" (assignment_expression "local_344 = param_3" (identifier "local_344") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_33c = param_2;" (assignment_expression "local_33c = param_2" (identifier "local_33c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_348 = param_4;" (assignment_expression "local_348 = param_4" (identifier "local_348") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (DAT_0003c358 == DAT_0003c35c) {\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" (if "if") (parenthesized_expression "(DAT_0003c358 == DAT_0003c35c)" (( "(") (binary_expression "DAT_0003c358 == DAT_0003c35c" (identifier "DAT_0003c358") (== "==") (identifier "DAT_0003c35c")) () ")")) (compound_statement "{\n    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }\n    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);\n    DAT_0003c35c = DAT_0003c35c << 1;\n  }" ({ "{") (if_statement "if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {\n                    \n      FUN_00024230();\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0))" (( "(") (binary_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||\n       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110) < 0)" (( "(") (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110) < 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110)" (( "(") (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "DAT_0003c358")) (* "*") (number_literal "0x110")) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0" (cast_expression "(int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)DAT_0003c358 * 0x110 >> 0x20)" (( "(") (binary_expression "(ulonglong)DAT_0003c358 * 0x110 >> 0x20" (binary_expression "(ulonglong)DAT_0003c358 * 0x110" (cast_expression "(ulonglong)DAT_0003c358" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "DAT_0003c358")) (* "*") (number_literal "0x110")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_00024230();\n    }" ({ "{") (expression_statement "FUN_00024230();" (call_expression "FUN_00024230()" (identifier "FUN_00024230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);" (assignment_expression "DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" (identifier "DAT_0003c360") (= "=") (call_expression "FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110)" (identifier "FUN_00023fc0") (argument_list "(DAT_0003c360,DAT_0003c358 * 0x110)" (( "(") (identifier "DAT_0003c360") (, ",") (binary_expression "DAT_0003c358 * 0x110" (identifier "DAT_0003c358") (* "*") (number_literal "0x110")) () ")")))) (; ";")) (expression_statement "DAT_0003c35c = DAT_0003c35c << 1;" (assignment_expression "DAT_0003c35c = DAT_0003c35c << 1" (identifier "DAT_0003c35c") (= "=") (binary_expression "DAT_0003c35c << 1" (identifier "DAT_0003c35c") (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (; ";")) (expression_statement "puVar19 = auStack_35c;" (assignment_expression "puVar19 = auStack_35c" (identifier "puVar19") (= "=") (identifier "auStack_35c")) (; ";")) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" (identifier "puVar21") (= "=") (identifier "auStack_35c")) (; ";")) (expression_statement "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);" (assignment_expression "local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" (identifier "local_330") (= "=") (cast_expression "(undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0003c360 + DAT_0003c358 * 0x88)" (( "(") (binary_expression "DAT_0003c360 + DAT_0003c358 * 0x88" (identifier "DAT_0003c360") (+ "+") (binary_expression "DAT_0003c358 * 0x88" (identifier "DAT_0003c358") (* "*") (number_literal "0x88"))) () ")")))) (; ";")) (expression_statement "*local_330 = 0;" (assignment_expression "*local_330 = 0" (pointer_expression "*local_330" (* "*") (identifier "local_330")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_330[0x20] = 0;" (assignment_expression "local_330[0x20] = 0" (subscript_expression "local_330[0x20]" (identifier "local_330") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);" (assignment_expression "puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)((uint)(local_330 + 1) & 0xfffffffc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_330 + 1)" (( "(") (binary_expression "local_330 + 1" (identifier "local_330") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;\n      uVar16 != 0; uVar16 = uVar16 - 1) {\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" (identifier "uVar16") (= "=") (binary_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2" (call_expression "(uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)))" (( "(") (binary_expression "(int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" (cast_expression "(int)local_330" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_330")) (+ "+") (parenthesized_expression "(0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))" (( "(") (binary_expression "0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc)" (number_literal "0x84") (- "-") (cast_expression "(int)((uint)(local_330 + 1) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(local_330 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_330 + 1) & 0xfffffffc" (call_expression "(uint)(local_330 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_330 + 1)" (( "(") (binary_expression "local_330 + 1" (identifier "local_330") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) () ")"))) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar16 = uVar16 - 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n    *puVar23 = 0;\n    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar23 = puVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "puVar23 = puVar23 + (uint)bVar28 * -2 + 1" (identifier "puVar23") (= "=") (binary_expression "puVar23 + (uint)bVar28 * -2 + 1" (binary_expression "puVar23 + (uint)bVar28 * -2" (identifier "puVar23") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_330[0x19] = 0;" (assignment_expression "local_330[0x19] = 0" (subscript_expression "local_330[0x19]" (identifier "local_330") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_330[0x1a] = 0;" (assignment_expression "local_330[0x1a] = 0" (subscript_expression "local_330[0x1a]" (identifier "local_330") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar26 = DAT_0003c355 == '\0';" (assignment_expression "bVar26 = DAT_0003c355 == '\0'" (identifier "bVar26") (= "=") (binary_expression "DAT_0003c355 == '\0'" (identifier "DAT_0003c355") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "local_330[0x21] = 0xffffffff;" (assignment_expression "local_330[0x21] = 0xffffffff" (subscript_expression "local_330[0x21]" (identifier "local_330") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_330[0x1b] = local_33c;" (assignment_expression "local_330[0x1b] = local_33c" (subscript_expression "local_330[0x1b]" (identifier "local_330") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "local_33c")) (; ";")) (if_statement "if ((bVar26) && (DAT_0003c354 != '\0')) {\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" (if "if") (parenthesized_expression "((bVar26) && (DAT_0003c354 != '\0'))" (( "(") (binary_expression "(bVar26) && (DAT_0003c354 != '\0')" (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (&& "&&") (parenthesized_expression "(DAT_0003c354 != '\0')" (( "(") (binary_expression "DAT_0003c354 != '\0'" (identifier "DAT_0003c354") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    bVar4 = FUN_00014c00();\n    local_330[0x21] = (uint)bVar4;\n    if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }\n  }" ({ "{") (expression_statement "bVar4 = FUN_00014c00();" (assignment_expression "bVar4 = FUN_00014c00()" (identifier "bVar4") (= "=") (call_expression "FUN_00014c00()" (identifier "FUN_00014c00") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_330[0x21] = (uint)bVar4;" (assignment_expression "local_330[0x21] = (uint)bVar4" (subscript_expression "local_330[0x21]" (identifier "local_330") ([ "[") (number_literal "0x21") (] "]")) (= "=") (cast_expression "(uint)bVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar4"))) (; ";")) (if_statement "if (bVar4 != 0) {\n      DAT_0003c355 = '\x01';\n    }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0003c355 = '\x01';\n    }" ({ "{") (expression_statement "DAT_0003c355 = '\x01';" (assignment_expression "DAT_0003c355 = '\x01'" (identifier "DAT_0003c355") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);" (assignment_expression "local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1)" (identifier "local_34c") (= "=") (call_expression "CONCAT31(local_34c._1_3_,DAT_0003c2e1)" (identifier "CONCAT31") (argument_list "(local_34c._1_3_,DAT_0003c2e1)" (( "(") (field_expression "local_34c._1_3_" (identifier "local_34c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "DAT_0003c2e1") () ")")))) (; ";")) (if_statement "if ((char)local_344 == '\0') {\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }\n  else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((char)local_344 == '\0')" (( "(") (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }\n    if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }\n    if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }\n    if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }\n  }" ({ "{") (if_statement "if (DAT_0003c2e1 != '\0') {\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" (if "if") (parenthesized_expression "(DAT_0003c2e1 != '\0')" (( "(") (binary_expression "DAT_0003c2e1 != '\0'" (identifier "DAT_0003c2e1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar5 = (char)*local_338;\n      if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }\n      goto LAB_0001896e;\n    }" ({ "{") (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" (identifier "cVar5") (= "=") (cast_expression "(char)*local_338" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*local_338" (* "*") (identifier "local_338")))) (; ";")) (if_statement "if (cVar5 == '/') {\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }\n      else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" (if "if") (parenthesized_expression "(cVar5 == '/')" (( "(") (binary_expression "cVar5 == '/'" (identifier "cVar5") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n      }" ({ "{") (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" (identifier "local_334") (= "=") (identifier "local_338")) (; ";")) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (; ";")) (} "}")) (else_clause "else {\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" (else "else") (compound_statement "{\n        cVar3 = *local_348;\n        local_334 = local_338;\n        puVar20 = auStack_35c;\n        if (cVar3 != '\0') goto LAB_00018b15;\n      }" ({ "{") (expression_statement "cVar3 = *local_348;" (assignment_expression "cVar3 = *local_348" (identifier "cVar3") (= "=") (pointer_expression "*local_348" (* "*") (identifier "local_348"))) (; ";")) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" (identifier "local_334") (= "=") (identifier "local_338")) (; ";")) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_00018b15;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00018b15;" (goto "goto") (statement_identifier "LAB_00018b15") (; ";"))) (} "}")))) (goto_statement "goto LAB_0001896e;" (goto "goto") (statement_identifier "LAB_0001896e") (; ";")) (} "}"))) (if_statement "if ((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" (if "if") (parenthesized_expression "((DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))))" (( "(") (binary_expression "(DAT_0003c2a1 != '\0') ||\n       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" (parenthesized_expression "(DAT_0003c2a1 != '\0')" (( "(") (binary_expression "DAT_0003c2a1 != '\0'" (identifier "DAT_0003c2a1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))" (( "(") (parenthesized_expression "((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))))" (( "(") (binary_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0')) &&\n        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" (parenthesized_expression "(local_33c == 3 && (DAT_0003c2e2 != '\0'))" (( "(") (binary_expression "local_33c == 3 && (DAT_0003c2e2 != '\0')" (binary_expression "local_33c == 3" (identifier "local_33c") (== "==") (number_literal "3")) (&& "&&") (parenthesized_expression "(DAT_0003c2e2 != '\0')" (( "(") (binary_expression "DAT_0003c2e2 != '\0'" (identifier "DAT_0003c2e2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))" (( "(") (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))))" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0' ||\n         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))" (( "(") (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_00018410:\n      cVar5 = (char)*local_338;\n      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;\n      local_348 = (char *)(local_330 + 3);\n      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }\n      goto LAB_00018470;\n    }" ({ "{") (labeled_statement "LAB_00018410:\n      cVar5 = (char)*local_338;" (statement_identifier "LAB_00018410") (: ":") (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" (identifier "cVar5") (= "=") (cast_expression "(char)*local_338" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*local_338" (* "*") (identifier "local_338")))) (; ";"))) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;" (if "if") (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0'))" (( "(") (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" (( "(") (binary_expression "cVar5 != '/'" (identifier "cVar5") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar3 = *local_348, cVar3 != '\0')" (( "(") (comma_expression "cVar3 = *local_348, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" (identifier "cVar3") (= "=") (pointer_expression "*local_348" (* "*") (identifier "local_348"))) (, ",") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00018b15;" (goto "goto") (statement_identifier "LAB_00018b15") (; ";"))) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" (identifier "local_348") (= "=") (cast_expression "(char *)(local_330 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_330 + 3)" (( "(") (binary_expression "local_330 + 3" (identifier "local_330") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }\n      else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" (if "if") (parenthesized_expression "((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5))" (( "(") (binary_expression "(DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)" (parenthesized_expression "(DAT_0003c2d0 < 3)" (( "(") (binary_expression "DAT_0003c2d0 < 3" (identifier "DAT_0003c2d0") (< "<") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c2d0 < 5)" (( "(") (binary_expression "DAT_0003c2d0 < 5" (identifier "DAT_0003c2d0") (< "<") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n        local_334 = local_338;\n        puVar21 = auStack_35c;\n      }" ({ "{") (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" (identifier "local_334") (= "=") (identifier "local_338")) (; ";")) (expression_statement "puVar21 = auStack_35c;" (assignment_expression "puVar21 = auStack_35c" (identifier "puVar21") (= "=") (identifier "auStack_35c")) (; ";")) (} "}")) (else_clause "else {\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" (else "else") (compound_statement "{\n        local_334 = local_338;\n        if (DAT_0003c2d0 == 5) goto LAB_00018210;\n      }" ({ "{") (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" (identifier "local_334") (= "=") (identifier "local_338")) (; ";")) (if_statement "if (DAT_0003c2d0 == 5) goto LAB_00018210;" (if "if") (parenthesized_expression "(DAT_0003c2d0 == 5)" (( "(") (binary_expression "DAT_0003c2d0 == 5" (identifier "DAT_0003c2d0") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_00018210;" (goto "goto") (statement_identifier "LAB_00018210") (; ";"))) (} "}")))) (goto_statement "goto LAB_00018470;" (goto "goto") (statement_identifier "LAB_00018470") (; ";")) (} "}"))) (if_statement "if (DAT_0003c2d4 != '\0') {\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" (if "if") (parenthesized_expression "(DAT_0003c2d4 != '\0')" (( "(") (binary_expression "DAT_0003c2d4 != '\0'" (identifier "DAT_0003c2d4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }\n      goto LAB_00018410;\n    }" ({ "{") (if_statement "if ((local_33c == 6) || (local_33c == 0)) {\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" (if "if") (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" (( "(") (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" (( "(") (binary_expression "local_33c == 6" (identifier "local_33c") (== "==") (number_literal "6")) () ")")) (|| "||") (parenthesized_expression "(local_33c == 0)" (( "(") (binary_expression "local_33c == 0" (identifier "local_33c") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }\n      }" ({ "{") (labeled_statement "LAB_00018f48:\n        if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" (statement_identifier "LAB_00018f48") (: ":") (if_statement "if ((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" (if "if") (parenthesized_expression "((DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))))" (( "(") (binary_expression "(DAT_0003c2d0 != 5) &&\n           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" (parenthesized_expression "(DAT_0003c2d0 != 5)" (( "(") (binary_expression "DAT_0003c2d0 != 5" (identifier "DAT_0003c2d0") (!= "!=") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))" (( "(") (parenthesized_expression "((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0'))" (( "(") (binary_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')" (parenthesized_expression "(DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0'))" (( "(") (binary_expression "DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')" (binary_expression "DAT_0003c348 == '\0'" (identifier "DAT_0003c348") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(DAT_0003c2d5 == '\0')" (( "(") (binary_expression "DAT_0003c2d5 == '\0'" (identifier "DAT_0003c2d5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0003c2d4 == '\0')" (( "(") (binary_expression "DAT_0003c2d4 == '\0'" (identifier "DAT_0003c2d4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\n          if (local_33c != 0) goto LAB_000183a9;\n        }" ({ "{") (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" (if "if") (parenthesized_expression "(DAT_0003c2a0 == '\0')" (( "(") (binary_expression "DAT_0003c2a0 == '\0'" (identifier "DAT_0003c2a0") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00018fd0;" (goto "goto") (statement_identifier "LAB_00018fd0") (; ";"))) (if_statement "if (local_33c != 0) goto LAB_000183a9;" (if "if") (parenthesized_expression "(local_33c != 0)" (( "(") (binary_expression "local_33c != 0" (identifier "local_33c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000183a9;" (goto "goto") (statement_identifier "LAB_000183a9") (; ";"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00018410;" (goto "goto") (statement_identifier "LAB_00018410") (; ";")) (} "}"))) (if_statement "if (DAT_0003c2a0 == '\0') {\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }\n    else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" (if "if") (parenthesized_expression "(DAT_0003c2a0 == '\0')" (( "(") (binary_expression "DAT_0003c2a0 == '\0'" (identifier "DAT_0003c2a0") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00018fd0:\n      uVar17 = 0;\n      uVar24 = 0;\n    }" ({ "{") (labeled_statement "LAB_00018fd0:\n      uVar17 = 0;" (statement_identifier "LAB_00018fd0") (: ":") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" (else "else") (compound_statement "{\n      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;\n      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;\nLAB_000183a9:\n      uVar17 = 0;\n      uVar24 = 0;\n      puVar20 = auStack_35c;\n      if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;\n    }" ({ "{") (if_statement "if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;" (if "if") (parenthesized_expression "((local_33c == 6) || (local_33c == 0))" (( "(") (binary_expression "(local_33c == 6) || (local_33c == 0)" (parenthesized_expression "(local_33c == 6)" (( "(") (binary_expression "local_33c == 6" (identifier "local_33c") (== "==") (number_literal "6")) () ")")) (|| "||") (parenthesized_expression "(local_33c == 0)" (( "(") (binary_expression "local_33c == 0" (identifier "local_33c") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00018f48;" (goto "goto") (statement_identifier "LAB_00018f48") (; ";"))) (if_statement "if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;" (if "if") (parenthesized_expression "(DAT_0003c2a0 == '\0')" (( "(") (binary_expression "DAT_0003c2a0 == '\0'" (identifier "DAT_0003c2a0") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00018fd0;" (goto "goto") (statement_identifier "LAB_00018fd0") (; ";"))) (labeled_statement "LAB_000183a9:\n      uVar17 = 0;" (statement_identifier "LAB_000183a9") (: ":") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (; ";")) (if_statement "if ((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))\n      goto LAB_00018410;" (if "if") (parenthesized_expression "((local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))" (( "(") (binary_expression "(local_33c == 5) &&\n         ((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" (parenthesized_expression "(local_33c == 5)" (( "(") (binary_expression "local_33c == 5" (identifier "local_33c") (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))))" (( "(") (parenthesized_expression "(DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))" (( "(") (binary_expression "DAT_0003c2e4 == 3 ||\n          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" (binary_expression "DAT_0003c2e4 == 3" (identifier "DAT_0003c2e4") (== "==") (number_literal "3")) (|| "||") (parenthesized_expression "((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))))" (( "(") (parenthesized_expression "(puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))" (( "(") (comma_expression "puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (, ",") (binary_expression "DAT_0003c2e2 != '\0' &&\n           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (binary_expression "DAT_0003c2e2 != '\0'" (identifier "DAT_0003c2e2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))))" (( "(") (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))" (( "(") (binary_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||\n            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0'))" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')" (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0')" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")))) () ")")) (|| "||") (parenthesized_expression "((cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')))" (( "(") (parenthesized_expression "(cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))" (( "(") (comma_expression "cVar5 = FUN_000146d0(), cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar5 != '\0' ||\n             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0')" (( "(") (comma_expression "cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "cVar5 = FUN_000146d0()" (identifier "cVar5") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (, ",") (comma_expression "puVar20 = auStack_35c, cVar5 != '\0'" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (, ",") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")")))) () ")")) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00018410;" (goto "goto") (statement_identifier "LAB_00018410") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    cVar5 = (char)*local_338;\n    local_334 = local_338;\n    puVar20 = auStack_35c;\n    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }\n    if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }\n    uVar16 = DAT_0003c2d0;\n    local_348 = (char *)(local_330 + 3);\n    puVar21 = puVar20;\n    if (DAT_0003c2d0 < 3) goto LAB_00018470;\n    if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }\n    *(undefined1 *)(local_330 + 0x1e) = 1;\n    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }\n    puVar23 = local_330;\n    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }\n    uVar17 = local_330[0x11];\n    uVar24 = local_330[0x12];\n    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }\n    DAT_0003c30c = iVar6;\n    if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }\n  }" ({ "{") (expression_statement "cVar5 = (char)*local_338;" (assignment_expression "cVar5 = (char)*local_338" (identifier "cVar5") (= "=") (cast_expression "(char)*local_338" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*local_338" (* "*") (identifier "local_338")))) (; ";")) (expression_statement "local_334 = local_338;" (assignment_expression "local_334 = local_338" (identifier "local_334") (= "=") (identifier "local_338")) (; ";")) (expression_statement "puVar20 = auStack_35c;" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (; ";")) (if_statement "if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" (if "if") (parenthesized_expression "((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'))" (( "(") (binary_expression "(cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" (parenthesized_expression "(cVar5 != '/')" (( "(") (binary_expression "cVar5 != '/'" (identifier "cVar5") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')" (( "(") (comma_expression "cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "cVar3 = *local_348" (identifier "cVar3") (= "=") (pointer_expression "*local_348" (* "*") (identifier "local_348"))) (, ",") (comma_expression "puVar20 = auStack_35c, cVar3 != '\0'" (assignment_expression "puVar20 = auStack_35c" (identifier "puVar20") (= "=") (identifier "auStack_35c")) (, ",") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")"))) () ")")) (compound_statement "{\nLAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);\n      local_351 = cVar3;\n      sVar8 = strlen((char *)local_338);\n      pcVar15 = local_348;\n      sVar10 = strlen(local_348);\n      cVar5 = local_351;\n      cVar3 = (char)local_350;\n      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);\n      puVar20 = auStack_35c + iVar6;\n      local_334 = (uint *)((int)&local_350 + iVar6);\n      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }\n      puVar14 = local_338;\n      if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }\n      *(char *)local_350 = '\0';\n    }" ({ "{") (labeled_statement "LAB_00018b15:\n      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" (statement_identifier "LAB_00018b15") (: ":") (expression_statement "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);" (assignment_expression "local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5)" (identifier "local_350") (= "=") (cast_expression "(uint *)CONCAT31(local_350._1_3_,cVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_350._1_3_,cVar5)" (identifier "CONCAT31") (argument_list "(local_350._1_3_,cVar5)" (( "(") (field_expression "local_350._1_3_" (identifier "local_350") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "cVar5") () ")"))))) (; ";"))) (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" (identifier "local_351") (= "=") (identifier "cVar3")) (; ";")) (expression_statement "sVar8 = strlen((char *)local_338);" (assignment_expression "sVar8 = strlen((char *)local_338)" (identifier "sVar8") (= "=") (call_expression "strlen((char *)local_338)" (identifier "strlen") (argument_list "((char *)local_338)" (( "(") (cast_expression "(char *)local_338" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_338")) () ")")))) (; ";")) (expression_statement "pcVar15 = local_348;" (assignment_expression "pcVar15 = local_348" (identifier "pcVar15") (= "=") (identifier "local_348")) (; ";")) (expression_statement "sVar10 = strlen(local_348);" (assignment_expression "sVar10 = strlen(local_348)" (identifier "sVar10") (= "=") (call_expression "strlen(local_348)" (identifier "strlen") (argument_list "(local_348)" (( "(") (identifier "local_348") () ")")))) (; ";")) (expression_statement "cVar5 = local_351;" (assignment_expression "cVar5 = local_351" (identifier "cVar5") (= "=") (identifier "local_351")) (; ";")) (expression_statement "cVar3 = (char)local_350;" (assignment_expression "cVar3 = (char)local_350" (identifier "cVar3") (= "=") (cast_expression "(char)local_350" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_350"))) (; ";")) (expression_statement "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);" (assignment_expression "iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0)" (identifier "iVar6") (= "=") (unary_expression "-(sVar8 + 0x1d + sVar10 & 0xfffffff0)" (- "-") (parenthesized_expression "(sVar8 + 0x1d + sVar10 & 0xfffffff0)" (( "(") (binary_expression "sVar8 + 0x1d + sVar10 & 0xfffffff0" (binary_expression "sVar8 + 0x1d + sVar10" (binary_expression "sVar8 + 0x1d" (identifier "sVar8") (+ "+") (number_literal "0x1d")) (+ "+") (identifier "sVar10")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puVar20 = auStack_35c + iVar6;" (assignment_expression "puVar20 = auStack_35c + iVar6" (identifier "puVar20") (= "=") (binary_expression "auStack_35c + iVar6" (identifier "auStack_35c") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "local_334 = (uint *)((int)&local_350 + iVar6);" (assignment_expression "local_334 = (uint *)((int)&local_350 + iVar6)" (identifier "local_334") (= "=") (cast_expression "(uint *)((int)&local_350 + iVar6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&local_350 + iVar6)" (( "(") (binary_expression "(int)&local_350 + iVar6" (cast_expression "(int)&local_350" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_350" (& "&") (identifier "local_350"))) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" (if "if") (parenthesized_expression "((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0'))" (( "(") (binary_expression "(local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')" (parenthesized_expression "(local_351 != '.')" (( "(") (binary_expression "local_351 != '.'" (identifier "local_351") (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_350 = local_334, pcVar15[1] != '\0')" (( "(") (comma_expression "local_350 = local_334, pcVar15[1] != '\0'" (assignment_expression "local_350 = local_334" (identifier "local_350") (= "=") (identifier "local_334")) (, ",") (binary_expression "pcVar15[1] != '\0'" (subscript_expression "pcVar15[1]" (identifier "pcVar15") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        local_351 = cVar3;\n        pcVar9 = local_348;\n        puVar14 = local_334;\n        cVar2 = pcVar15[1];\n        while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }\n        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }\n      }" ({ "{") (expression_statement "local_351 = cVar3;" (assignment_expression "local_351 = cVar3" (identifier "local_351") (= "=") (identifier "cVar3")) (; ";")) (expression_statement "pcVar9 = local_348;" (assignment_expression "pcVar9 = local_348" (identifier "pcVar9") (= "=") (identifier "local_348")) (; ";")) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" (identifier "puVar14") (= "=") (identifier "local_334")) (; ";")) (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" (identifier "cVar2") (= "=") (subscript_expression "pcVar15[1]" (identifier "pcVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while( true ) {\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          cVar1 = cVar2;\n          local_350 = (uint *)((int)puVar14 + 1);\n          *(char *)puVar14 = cVar5;\n          if (cVar1 == '\0') break;\n          pcVar15 = pcVar9 + 2;\n          pcVar9 = pcVar9 + 1;\n          puVar14 = local_350;\n          cVar2 = *pcVar15;\n          cVar5 = cVar1;\n        }" ({ "{") (expression_statement "cVar1 = cVar2;" (assignment_expression "cVar1 = cVar2" (identifier "cVar1") (= "=") (identifier "cVar2")) (; ";")) (expression_statement "local_350 = (uint *)((int)puVar14 + 1);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 1)" (identifier "local_350") (= "=") (cast_expression "(uint *)((int)puVar14 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 1)" (( "(") (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char *)puVar14 = cVar5;" (assignment_expression "*(char *)puVar14 = cVar5" (pointer_expression "*(char *)puVar14" (* "*") (cast_expression "(char *)puVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (identifier "cVar5")) (; ";")) (if_statement "if (cVar1 == '\0') break;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar15 = pcVar9 + 2;" (assignment_expression "pcVar15 = pcVar9 + 2" (identifier "pcVar15") (= "=") (binary_expression "pcVar9 + 2" (identifier "pcVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = local_350;" (assignment_expression "puVar14 = local_350" (identifier "puVar14") (= "=") (identifier "local_350")) (; ";")) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" (identifier "cVar2") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar5 = cVar1;" (assignment_expression "cVar5 = cVar1" (identifier "cVar5") (= "=") (identifier "cVar1")) (; ";")) (} "}"))) (if_statement "if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" (if "if") (parenthesized_expression "((local_348 < pcVar9 + 1) && (*pcVar9 != '/'))" (( "(") (binary_expression "(local_348 < pcVar9 + 1) && (*pcVar9 != '/')" (parenthesized_expression "(local_348 < pcVar9 + 1)" (( "(") (binary_expression "local_348 < pcVar9 + 1" (identifier "local_348") (< "<") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar9 != '/')" (( "(") (binary_expression "*pcVar9 != '/'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          *(char *)local_350 = '/';\n          local_350 = (uint *)((int)puVar14 + 2);\n        }" ({ "{") (expression_statement "*(char *)local_350 = '/';" (assignment_expression "*(char *)local_350 = '/'" (pointer_expression "*(char *)local_350" (* "*") (cast_expression "(char *)local_350" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_350"))) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (expression_statement "local_350 = (uint *)((int)puVar14 + 2);" (assignment_expression "local_350 = (uint *)((int)puVar14 + 2)" (identifier "local_350") (= "=") (cast_expression "(uint *)((int)puVar14 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 2)" (( "(") (binary_expression "(int)puVar14 + 2" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar14 = local_338;" (assignment_expression "puVar14 = local_338" (identifier "puVar14") (= "=") (identifier "local_338")) (; ";")) (if_statement "if (cVar3 != '\0') {\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');\n      }" ({ "{") (do_statement "do {\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        } while (cVar3 != '\0');" (do "do") (compound_statement "{\n          puVar11 = (uint *)((int)local_350 + 1);\n          *(char *)local_350 = cVar3;\n          cVar3 = *(char *)((int)puVar14 + 1);\n          local_350 = puVar11;\n          puVar14 = (uint *)((int)puVar14 + 1);\n        }" ({ "{") (expression_statement "puVar11 = (uint *)((int)local_350 + 1);" (assignment_expression "puVar11 = (uint *)((int)local_350 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)local_350 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_350 + 1)" (( "(") (binary_expression "(int)local_350 + 1" (cast_expression "(int)local_350" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_350")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char *)local_350 = cVar3;" (assignment_expression "*(char *)local_350 = cVar3" (pointer_expression "*(char *)local_350" (* "*") (cast_expression "(char *)local_350" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_350"))) (= "=") (identifier "cVar3")) (; ";")) (expression_statement "cVar3 = *(char *)((int)puVar14 + 1);" (assignment_expression "cVar3 = *(char *)((int)puVar14 + 1)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)puVar14 + 1)" (* "*") (cast_expression "(char *)((int)puVar14 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 1)" (( "(") (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "local_350 = puVar11;" (assignment_expression "local_350 = puVar11" (identifier "local_350") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar14 = (uint *)((int)puVar14 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + 1)" (identifier "puVar14") (= "=") (cast_expression "(uint *)((int)puVar14 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 1)" (( "(") (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "*(char *)local_350 = '\0';" (assignment_expression "*(char *)local_350 = '\0'" (pointer_expression "*(char *)local_350" (* "*") (cast_expression "(char *)local_350" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_350"))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (if_statement "if ((char)local_34c != '\0') {\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" (if "if") (parenthesized_expression "((char)local_34c != '\0')" (( "(") (binary_expression "(char)local_34c != '\0'" (cast_expression "(char)local_34c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_34c")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;\n      iVar6 = FUN_0001b7b0();\n      local_330[2] = iVar6;\n      if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }\n    }" ({ "{") (labeled_statement "LAB_0001896e:\n      *(undefined4 *)(puVar20 + -0xc) = 2;" (statement_identifier "LAB_0001896e") (: ":") (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";"))) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1897e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1897e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1897e")) (; ";")) (expression_statement "iVar6 = FUN_0001b7b0();" (assignment_expression "iVar6 = FUN_0001b7b0()" (identifier "iVar6") (= "=") (call_expression "FUN_0001b7b0()" (identifier "FUN_0001b7b0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_330[2] = iVar6;" (assignment_expression "local_330[2] = iVar6" (subscript_expression "local_330[2]" (identifier "local_330") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 == 0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;\n        FUN_00015440();\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = "error canonicalizing %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "error canonicalizing %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""error canonicalizing %s"" (" """) (string_content "error canonicalizing %s") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189a5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189a5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x189a5")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189bb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189bb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x189bb")) (; ";")) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" (identifier "FUN_00015440") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar16 = DAT_0003c2d0;" (assignment_expression "uVar16 = DAT_0003c2d0" (identifier "uVar16") (= "=") (identifier "DAT_0003c2d0")) (; ";")) (expression_statement "local_348 = (char *)(local_330 + 3);" (assignment_expression "local_348 = (char *)(local_330 + 3)" (identifier "local_348") (= "=") (cast_expression "(char *)(local_330 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_330 + 3)" (( "(") (binary_expression "local_330 + 3" (identifier "local_330") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" (identifier "puVar21") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (DAT_0003c2d0 < 3) goto LAB_00018470;" (if "if") (parenthesized_expression "(DAT_0003c2d0 < 3)" (( "(") (binary_expression "DAT_0003c2d0 < 3" (identifier "DAT_0003c2d0") (< "<") (number_literal "3")) () ")")) (goto_statement "goto LAB_00018470;" (goto "goto") (statement_identifier "LAB_00018470") (; ";"))) (if_statement "if (DAT_0003c2d0 < 5) {\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }\n    else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_0003c2d0 < 5)" (( "(") (binary_expression "DAT_0003c2d0 < 5" (identifier "DAT_0003c2d0") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n      if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }\n      *(undefined4 **)(puVar20 + -8) = local_330 + 3;\n      *(uint **)(puVar20 + -0xc) = local_334;\n      *(undefined4 *)(puVar20 + -0x10) = 3;\n      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;\n      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));\n      if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }\nLAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }\n      cVar5 = (char)local_344;\n    }" ({ "{") (if_statement "if ((char)local_344 == '\0') {\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" (if "if") (parenthesized_expression "((char)local_344 == '\0')" (( "(") (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;\n        cVar5 = '\0';\n        *(uint **)(puVar21 + -0xc) = local_334;\n        *(undefined4 *)(puVar21 + -0x10) = 3;\n        *(undefined4 *)(puVar21 + -0x14) = 0x18488;\n        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));\n        puVar20 = puVar21;\n        goto joined_r0x0001848d;\n      }" ({ "{") (labeled_statement "LAB_00018470:\n        *(char **)(puVar21 + -8) = local_348;" (statement_identifier "LAB_00018470") (: ":") (expression_statement "*(char **)(puVar21 + -8) = local_348;" (assignment_expression "*(char **)(puVar21 + -8) = local_348" (pointer_expression "*(char **)(puVar21 + -8)" (* "*") (cast_expression "(char **)(puVar21 + -8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_348")) (; ";"))) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" (identifier "cVar5") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "*(uint **)(puVar21 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar21 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar21 + -0xc)" (* "*") (cast_expression "(uint **)(puVar21 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x18488;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x18488" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18488")) (; ";")) (expression_statement "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8));" (assignment_expression "iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" (identifier "iVar6") (= "=") (call_expression "__lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" (identifier "__lxstat64") (argument_list "(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),\n                           *(stat64 **)(puVar21 + -8))" (( "(") (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar21 + -0xc)" (* "*") (cast_expression "(char **)(puVar21 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar21 + -8)" (* "*") (cast_expression "(stat64 **)(puVar21 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" (identifier "puVar20") (= "=") (identifier "puVar21")) (; ";")) (goto_statement "goto joined_r0x0001848d;" (goto "goto") (statement_identifier "joined_r0x0001848d") (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(puVar20 + -8) = local_330 + 3;" (assignment_expression "*(undefined4 **)(puVar20 + -8) = local_330 + 3" (pointer_expression "*(undefined4 **)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_330 + 3" (identifier "local_330") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" (* "*") (cast_expression "(uint **)(puVar20 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x189eb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x189eb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x189eb")) (; ";")) (expression_statement "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" (identifier "iVar6") (= "=") (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" (identifier "__xstat64") (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                        *(stat64 **)(puVar20 + -8))" (( "(") (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar20 + -8)" (* "*") (cast_expression "(stat64 **)(puVar20 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (if_statement "if (uVar16 != 3) {\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" (if "if") (parenthesized_expression "(uVar16 != 3)" (( "(") (binary_expression "uVar16 != 3" (identifier "uVar16") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }\n        goto LAB_00018470;\n      }" ({ "{") (if_statement "if (iVar6 < 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }\n        else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18f95;\n          piVar12 = __errno_location();\n          if (*piVar12 != 2) goto LAB_00018f9e;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18f95;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18f95" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18f95")) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar12 != 2) goto LAB_00018f9e;" (if "if") (parenthesized_expression "(*piVar12 != 2)" (( "(") (binary_expression "*piVar12 != 2" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00018f9e;" (goto "goto") (statement_identifier "LAB_00018f9e") (; ";"))) (} "}")) (else_clause "else {\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" (else "else") (compound_statement "{\n          local_34c = local_330[7];\n          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;\n        }" ({ "{") (expression_statement "local_34c = local_330[7];" (assignment_expression "local_34c = local_330[7]" (identifier "local_34c") (= "=") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;" (if "if") (parenthesized_expression "((local_330[7] & 0xf000) == 0x4000)" (( "(") (binary_expression "(local_330[7] & 0xf000) == 0x4000" (parenthesized_expression "(local_330[7] & 0xf000)" (( "(") (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]")) (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x4000")) () ")")) (goto_statement "goto LAB_00018a1e;" (goto "goto") (statement_identifier "LAB_00018a1e") (; ";"))) (} "}")))) (goto_statement "goto LAB_00018470;" (goto "goto") (statement_identifier "LAB_00018470") (; ";")) (} "}"))) (labeled_statement "LAB_00018a1e:\n      if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" (statement_identifier "LAB_00018a1e") (: ":") (if_statement "if (iVar6 != 0) {\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00018f9e:\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;\n        FUN_00015440();\n        goto LAB_0001831b;\n      }" ({ "{") (labeled_statement "LAB_00018f9e:\n        uVar17 = 0;" (statement_identifier "LAB_00018f9e") (: ":") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""cannot access %s"" (" """) (string_content "cannot access %s") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fb5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18fb5")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18fc7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18fc7")) (; ";")) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" (identifier "FUN_00015440") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0001831b;" (goto "goto") (statement_identifier "LAB_0001831b") (; ";")) (} "}")))) (expression_statement "cVar5 = (char)local_344;" (assignment_expression "cVar5 = (char)local_344" (identifier "cVar5") (= "=") (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344"))) (; ";")) (} "}")) (else_clause "else {\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" (else "else") (compound_statement "{\n      puVar19 = puVar20;\n      if (DAT_0003c2d0 != 5) goto LAB_00018470;\nLAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;\n      cVar5 = '\x01';\n      *(uint **)(puVar19 + -0xc) = local_334;\n      *(undefined4 *)(puVar19 + -0x10) = 3;\n      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;\n      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));\n      puVar20 = puVar19;\njoined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }\n    }" ({ "{") (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (DAT_0003c2d0 != 5) goto LAB_00018470;" (if "if") (parenthesized_expression "(DAT_0003c2d0 != 5)" (( "(") (binary_expression "DAT_0003c2d0 != 5" (identifier "DAT_0003c2d0") (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto LAB_00018470;" (goto "goto") (statement_identifier "LAB_00018470") (; ";"))) (labeled_statement "LAB_00018210:\n      *(char **)(puVar19 + -8) = local_348;" (statement_identifier "LAB_00018210") (: ":") (expression_statement "*(char **)(puVar19 + -8) = local_348;" (assignment_expression "*(char **)(puVar19 + -8) = local_348" (pointer_expression "*(char **)(puVar19 + -8)" (* "*") (cast_expression "(char **)(puVar19 + -8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -8)" (( "(") (binary_expression "puVar19 + -8" (identifier "puVar19") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_348")) (; ";"))) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" (identifier "cVar5") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "*(uint **)(puVar19 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar19 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar19 + -0xc)" (* "*") (cast_expression "(uint **)(puVar19 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x1822b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x1822b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1822b")) (; ";")) (expression_statement "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8));" (assignment_expression "iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" (identifier "iVar6") (= "=") (call_expression "__xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" (identifier "__xstat64") (argument_list "(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),\n                        *(stat64 **)(puVar19 + -8))" (( "(") (pointer_expression "*(int *)(puVar19 + -0x10)" (* "*") (cast_expression "(int *)(puVar19 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar19 + -0xc)" (* "*") (cast_expression "(char **)(puVar19 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar19 + -8)" (* "*") (cast_expression "(stat64 **)(puVar19 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -8)" (( "(") (binary_expression "puVar19 + -8" (identifier "puVar19") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" (identifier "puVar20") (= "=") (identifier "puVar19")) (; ";")) (labeled_statement "joined_r0x0001848d:\n      if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" (statement_identifier "joined_r0x0001848d") (: ":") (if_statement "if (iVar6 != 0) {\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar17 = 0;\n        uVar24 = 0;\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot access %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x184be;\n        FUN_00015440();\n        if ((char)local_344 != '\0') goto LAB_0001831b;\n        goto LAB_000182fb;\n      }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot access %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot access %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""cannot access %s"" (" """) (string_content "cannot access %s") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184aa;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184aa" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x184aa")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x184be;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x184be" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x184be")) (; ";")) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" (identifier "FUN_00015440") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((char)local_344 != '\0') goto LAB_0001831b;" (if "if") (parenthesized_expression "((char)local_344 != '\0')" (( "(") (binary_expression "(char)local_344 != '\0'" (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001831b;" (goto "goto") (statement_identifier "LAB_0001831b") (; ";"))) (goto_statement "goto LAB_000182fb;" (goto "goto") (statement_identifier "LAB_000182fb") (; ";")) (} "}")))) (} "}")))) (expression_statement "*(undefined1 *)(local_330 + 0x1e) = 1;" (assignment_expression "*(undefined1 *)(local_330 + 0x1e) = 1" (pointer_expression "*(undefined1 *)(local_330 + 0x1e)" (* "*") (cast_expression "(undefined1 *)(local_330 + 0x1e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_330 + 0x1e)" (( "(") (binary_expression "local_330 + 0x1e" (identifier "local_330") (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" (if "if") (parenthesized_expression "(((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0'))" (( "(") (binary_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&\n       (DAT_0003c2e2 != '\0')" (parenthesized_expression "((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000))" (( "(") (binary_expression "(local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" (parenthesized_expression "(local_33c == 5)" (( "(") (binary_expression "local_33c == 5" (identifier "local_33c") (== "==") (number_literal "5")) () ")")) (|| "||") (parenthesized_expression "(local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)" (( "(") (comma_expression "local_33c = local_330[7], (local_33c & 0xf000) == 0x8000" (assignment_expression "local_33c = local_330[7]" (identifier "local_33c") (= "=") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]"))) (, ",") (binary_expression "(local_33c & 0xf000) == 0x8000" (parenthesized_expression "(local_33c & 0xf000)" (( "(") (binary_expression "local_33c & 0xf000" (identifier "local_33c") (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x8000"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0003c2e2 != '\0')" (( "(") (binary_expression "DAT_0003c2e2 != '\0'" (identifier "DAT_0003c2e2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = 0x188e7;\n      cVar3 = FUN_000146d0();\n      if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x188e7;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x188e7" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x188e7")) (; ";")) (expression_statement "cVar3 = FUN_000146d0();" (assignment_expression "cVar3 = FUN_000146d0()" (identifier "cVar3") (= "=") (call_expression "FUN_000146d0()" (identifier "FUN_000146d0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 != '\0') {\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar6 = local_330[3];\n        local_33c = local_330[4];\n        *(undefined4 *)(puVar20 + -4) = 0x18906;\n        piVar12 = __errno_location();\n        uVar16 = DAT_0003b39c;\n        iVar13 = DAT_0003b398;\n        *piVar12 = 0x5f;\n        if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }\n        *(undefined1 *)(local_330 + 0x20) = 0;\n      }" ({ "{") (expression_statement "iVar6 = local_330[3];" (assignment_expression "iVar6 = local_330[3]" (identifier "iVar6") (= "=") (subscript_expression "local_330[3]" (identifier "local_330") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_33c = local_330[4];" (assignment_expression "local_33c = local_330[4]" (identifier "local_33c") (= "=") (subscript_expression "local_330[4]" (identifier "local_330") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18906;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18906" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18906")) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar16 = DAT_0003b39c;" (assignment_expression "uVar16 = DAT_0003b39c" (identifier "uVar16") (= "=") (identifier "DAT_0003b39c")) (; ";")) (expression_statement "iVar13 = DAT_0003b398;" (assignment_expression "iVar13 = DAT_0003b398" (identifier "iVar13") (= "=") (identifier "DAT_0003b398")) (; ";")) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0x5f")) (; ";")) (if_statement "if (local_33c != uVar16 || iVar13 != iVar6) {\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" (if "if") (parenthesized_expression "(local_33c != uVar16 || iVar13 != iVar6)" (( "(") (binary_expression "local_33c != uVar16 || iVar13 != iVar6" (binary_expression "local_33c != uVar16" (identifier "local_33c") (!= "!=") (identifier "uVar16")) (|| "||") (binary_expression "iVar13 != iVar6" (identifier "iVar13") (!= "!=") (identifier "iVar6"))) () ")")) (compound_statement "{\n          DAT_0003b39c = local_33c;\n          DAT_0003b398 = iVar6;\n        }" ({ "{") (expression_statement "DAT_0003b39c = local_33c;" (assignment_expression "DAT_0003b39c = local_33c" (identifier "DAT_0003b39c") (= "=") (identifier "local_33c")) (; ";")) (expression_statement "DAT_0003b398 = iVar6;" (assignment_expression "DAT_0003b398 = iVar6" (identifier "DAT_0003b398") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(local_330 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(local_330 + 0x20) = 0" (pointer_expression "*(undefined1 *)(local_330 + 0x20)" (* "*") (cast_expression "(undefined1 *)(local_330 + 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_330 + 0x20)" (( "(") (binary_expression "local_330 + 0x20" (identifier "local_330") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" (identifier "puVar23") (= "=") (identifier "local_330")) (; ";")) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }\n    else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" (if "if") (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c335 != '\0'))" (( "(") (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c335 != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" (( "(") (binary_expression "DAT_0003c308 == 0" (identifier "DAT_0003c308") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c335 != '\0')" (( "(") (binary_expression "DAT_0003c335 != '\0'" (identifier "DAT_0003c335") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\n      if (DAT_0003c308 != 0) goto LAB_00018da0;\nLAB_000187b9:\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];\n      *(uint **)(puVar20 + -0x10) = local_334;\n      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;\n      pcVar15 = (char *)FUN_0001b280();\n      puVar23[1] = pcVar15;\n      if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }\n      *(int *)(puVar20 + -0x10) = iVar6;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18899;\n      free(*(void **)(puVar20 + -0x10));\n      local_334 = (uint *)local_330[7];\n      uVar16 = (uint)local_330[7] & 0xf000;\n      if (uVar16 != 0xa000) goto LAB_000182a0;\nLAB_000188bb:\n      local_330[0x1b] = 6;\n    }" ({ "{") (if_statement "if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }\n      else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" (if "if") (parenthesized_expression "(local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390)" (( "(") (binary_expression "local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390" (binary_expression "local_330[4] == DAT_0003b394" (subscript_expression "local_330[4]" (identifier "local_330") ([ "[") (number_literal "4") (] "]")) (== "==") (identifier "DAT_0003b394")) (&& "&&") (binary_expression "local_330[3] == DAT_0003b390" (subscript_expression "local_330[3]" (identifier "local_330") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "DAT_0003b390"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eca;\n        piVar12 = __errno_location();\n        *piVar12 = 0x5f;\n        puVar23[0x1d] = &DAT_0003b1fa;\nLAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        cVar5 = false;\nLAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }\n        DAT_0003c334 = cVar5;\n        local_330[0x1f] = uVar17;\n        if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eca;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eca" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18eca")) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0x5f")) (; ";")) (expression_statement "puVar23[0x1d] = &DAT_0003b1fa;" (assignment_expression "puVar23[0x1d] = &DAT_0003b1fa" (subscript_expression "puVar23[0x1d]" (identifier "puVar23") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (pointer_expression "&DAT_0003b1fa" (& "&") (identifier "DAT_0003b1fa"))) (; ";")) (labeled_statement "LAB_00018ee0:\n        if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" (statement_identifier "LAB_00018ee0") (: ":") (if_statement "if (DAT_0003c308 != 0) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" (if "if") (parenthesized_expression "(DAT_0003c308 != 0)" (( "(") (binary_expression "DAT_0003c308 != 0" (identifier "DAT_0003c308") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" ({ "{") (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" (identifier "local_330") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00018287;" (goto "goto") (statement_identifier "LAB_00018287") (; ";")) (} "}")))) (expression_statement "cVar5 = false;" (assignment_expression "cVar5 = false" (identifier "cVar5") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_00018ca7:\n        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" (statement_identifier "LAB_00018ca7") (: ":") (if_statement "if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }\n        else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" (if "if") (parenthesized_expression "(local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388)" (( "(") (binary_expression "local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388" (binary_expression "local_330[4] == DAT_0003b38c" (subscript_expression "local_330[4]" (identifier "local_330") ([ "[") (number_literal "4") (] "]")) (== "==") (identifier "DAT_0003b38c")) (&& "&&") (binary_expression "local_330[3] == DAT_0003b388" (subscript_expression "local_330[3]" (identifier "local_330") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "DAT_0003b388"))) () ")")) (compound_statement "{\n          *piVar12 = 0x5f;\n          uVar16 = 0;\nLAB_0001900a:\n          uVar17 = 1;\n          if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }\n        }" ({ "{") (expression_statement "*piVar12 = 0x5f;" (assignment_expression "*piVar12 = 0x5f" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0x5f")) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001900a:\n          uVar17 = 1;" (statement_identifier "LAB_0001900a") (: ":") (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";"))) (if_statement "if ((bool)cVar5 == false) {\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" (if "if") (parenthesized_expression "((bool)cVar5 == false)" (( "(") (binary_expression "(bool)cVar5 == false" (cast_expression "(bool)cVar5" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar5")) (== "==") (false "false")) () ")")) (compound_statement "{\n            uVar17 = 0;\n            cVar5 = DAT_0003c334;\n          }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar5 = DAT_0003c334;" (assignment_expression "cVar5 = DAT_0003c334" (identifier "cVar5") (= "=") (identifier "DAT_0003c334")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" (else "else") (compound_statement "{\n          *piVar12 = 0;\n          *(char **)(puVar20 + -0xc) = local_348;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;\n          uVar16 = FUN_0001c190();\n          if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }\n          uVar16 = 0;\n          uVar17 = 2;\n          cVar5 = '\x01';\n        }" ({ "{") (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = local_348;" (assignment_expression "*(char **)(puVar20 + -0xc) = local_348" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_348")) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ce1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18ce1")) (; ";")) (expression_statement "uVar16 = FUN_0001c190();" (assignment_expression "uVar16 = FUN_0001c190()" (identifier "uVar16") (= "=") (call_expression "FUN_0001c190()" (identifier "FUN_0001c190") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)uVar16 < 1) {\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            uVar16 = uVar16 >> 0x1f;\n            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }\n            goto LAB_0001900a;\n          }" ({ "{") (expression_statement "uVar16 = uVar16 >> 0x1f;" (assignment_expression "uVar16 = uVar16 >> 0x1f" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 0x1f" (identifier "uVar16") (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" (if "if") (parenthesized_expression "(((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f))" (( "(") (binary_expression "((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)" (parenthesized_expression "((*piVar12 - 0x16U & 0xffffffef) == 0)" (( "(") (binary_expression "(*piVar12 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(*piVar12 - 0x16U & 0xffffffef)" (( "(") (binary_expression "*piVar12 - 0x16U & 0xffffffef" (binary_expression "*piVar12 - 0x16U" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (- "-") (number_literal "0x16U")) (& "&") (number_literal "0xffffffef")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*piVar12 == 0x5f)" (( "(") (binary_expression "*piVar12 == 0x5f" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (== "==") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n              DAT_0003b388 = local_330[3];\n              DAT_0003b38c = local_330[4];\n            }" ({ "{") (expression_statement "DAT_0003b388 = local_330[3];" (assignment_expression "DAT_0003b388 = local_330[3]" (identifier "DAT_0003b388") (= "=") (subscript_expression "local_330[3]" (identifier "local_330") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "DAT_0003b38c = local_330[4];" (assignment_expression "DAT_0003b38c = local_330[4]" (identifier "DAT_0003b38c") (= "=") (subscript_expression "local_330[4]" (identifier "local_330") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001900a;" (goto "goto") (statement_identifier "LAB_0001900a") (; ";")) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" (identifier "uVar17") (= "=") (number_literal "2")) (; ";")) (expression_statement "cVar5 = '\x01';" (assignment_expression "cVar5 = '\x01'" (identifier "cVar5") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))))) (expression_statement "DAT_0003c334 = cVar5;" (assignment_expression "DAT_0003c334 = cVar5" (identifier "DAT_0003c334") (= "=") (identifier "cVar5")) (; ";")) (expression_statement "local_330[0x1f] = uVar17;" (assignment_expression "local_330[0x1f] = uVar17" (subscript_expression "local_330[0x1f]" (identifier "local_330") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar16 != 0) {\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;\n          *(undefined4 *)(puVar20 + -0xc) = 3;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;\n          uVar17 = FUN_000234e0();\n          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;\n          piVar12 = __errno_location();\n          *(undefined4 *)(puVar20 + -0x14) = uVar17;\n          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;\n          *(int *)(puVar20 + -0x1c) = *piVar12;\n          *(undefined4 *)(puVar20 + -0x20) = 0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;\n          error();\n        }" ({ "{") (labeled_statement "LAB_00018ac2:\n          *(uint **)(puVar20 + -8) = local_334;" (statement_identifier "LAB_00018ac2") (: ":") (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" (* "*") (cast_expression "(uint **)(puVar20 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_334")) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18ad4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18ad4")) (; ";")) (expression_statement "uVar17 = FUN_000234e0();" (assignment_expression "uVar17 = FUN_000234e0()" (identifier "uVar17") (= "=") (call_expression "FUN_000234e0()" (identifier "FUN_000234e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18adb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18adb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18adb")) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = &DAT_0002fff0" (pointer_expression "*(undefined **)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&DAT_0002fff0" (& "&") (identifier "DAT_0002fff0"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar20 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar20 + -0x1c)" (* "*") (cast_expression "(int *)(puVar20 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18aec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18aec" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x18aec")) (; ";")) (expression_statement "error();" (call_expression "error()" (identifier "error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" (else "else") (compound_statement "{\n        if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }\n        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n        *(uint **)(puVar20 + -0x10) = local_334;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;\n        iVar6 = FUN_00028280();\n        if (iVar6 < 0) goto LAB_00018a52;\nLAB_0001873d:\n        bVar27 = iVar6 == 0;\n        bVar26 = false;\n        iVar6 = 10;\n        pbVar22 = (byte *)"unlabeled";\n        pbVar25 = (byte *)local_330[0x1d];\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);\n        cVar5 = (!bVar26 && !bVar27) != bVar26;\n        if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }\n        if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }\n        local_330[0x1f] = 1;\n        DAT_0003c334 = '\x01';\n      }" ({ "{") (if_statement "if (cVar5 != '\0') {\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18732;\n          iVar6 = FUN_00028250();\n          if (-1 < iVar6) goto LAB_0001873d;\nLAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;\n          piVar12 = __errno_location();\n          iVar6 = *piVar12;\n          bVar26 = iVar6 == 0x5f;\n          local_33c = CONCAT31(local_33c._1_3_,bVar26);\n          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }\n          local_330[0x1d] = &DAT_0003b1fa;\n          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;\n          local_330[0x1f] = 0;\n          goto LAB_00018ac2;\n        }" ({ "{") (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_330 + 0x1d" (identifier "local_330") (+ "+") (number_literal "0x1d"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18732;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18732" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18732")) (; ";")) (expression_statement "iVar6 = FUN_00028250();" (assignment_expression "iVar6 = FUN_00028250()" (identifier "iVar6") (= "=") (call_expression "FUN_00028250()" (identifier "FUN_00028250") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (-1 < iVar6) goto LAB_0001873d;" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_0001873d;" (goto "goto") (statement_identifier "LAB_0001873d") (; ";"))) (labeled_statement "LAB_00018a52:\n          *(undefined4 *)(puVar20 + -4) = 0x18a57;" (statement_identifier "LAB_00018a52") (: ":") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18a57;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18a57" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18a57")) (; ";"))) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" (identifier "iVar6") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "bVar26 = iVar6 == 0x5f;" (assignment_expression "bVar26 = iVar6 == 0x5f" (identifier "bVar26") (= "=") (binary_expression "iVar6 == 0x5f" (identifier "iVar6") (== "==") (number_literal "0x5f"))) (; ";")) (expression_statement "local_33c = CONCAT31(local_33c._1_3_,bVar26);" (assignment_expression "local_33c = CONCAT31(local_33c._1_3_,bVar26)" (identifier "local_33c") (= "=") (call_expression "CONCAT31(local_33c._1_3_,bVar26)" (identifier "CONCAT31") (argument_list "(local_33c._1_3_,bVar26)" (( "(") (field_expression "local_33c._1_3_" (identifier "local_33c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar26") () ")")))) (; ";")) (if_statement "if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" (if "if") (parenthesized_expression "(((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26))" (( "(") (binary_expression "((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)" (parenthesized_expression "((iVar6 - 0x16U & 0xffffffef) == 0)" (( "(") (binary_expression "(iVar6 - 0x16U & 0xffffffef) == 0" (parenthesized_expression "(iVar6 - 0x16U & 0xffffffef)" (( "(") (binary_expression "iVar6 - 0x16U & 0xffffffef" (binary_expression "iVar6 - 0x16U" (identifier "iVar6") (- "-") (number_literal "0x16U")) (& "&") (number_literal "0xffffffef")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")"))) () ")")) (compound_statement "{\n            DAT_0003b394 = local_330[4];\n            DAT_0003b390 = local_330[3];\n          }" ({ "{") (expression_statement "DAT_0003b394 = local_330[4];" (assignment_expression "DAT_0003b394 = local_330[4]" (identifier "DAT_0003b394") (= "=") (subscript_expression "local_330[4]" (identifier "local_330") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "DAT_0003b390 = local_330[3];" (assignment_expression "DAT_0003b390 = local_330[3]" (identifier "DAT_0003b390") (= "=") (subscript_expression "local_330[3]" (identifier "local_330") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_330[0x1d] = &DAT_0003b1fa;" (assignment_expression "local_330[0x1d] = &DAT_0003b1fa" (subscript_expression "local_330[0x1d]" (identifier "local_330") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (pointer_expression "&DAT_0003b1fa" (& "&") (identifier "DAT_0003b1fa"))) (; ";")) (if_statement "if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;" (if "if") (parenthesized_expression "((iVar6 == 0x3d) || (bVar26))" (( "(") (binary_expression "(iVar6 == 0x3d) || (bVar26)" (parenthesized_expression "(iVar6 == 0x3d)" (( "(") (binary_expression "iVar6 == 0x3d" (identifier "iVar6") (== "==") (number_literal "0x3d")) () ")")) (|| "||") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")"))) () ")")) (goto_statement "goto LAB_00018ee0;" (goto "goto") (statement_identifier "LAB_00018ee0") (; ";"))) (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" (identifier "local_330") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00018ac2;" (goto "goto") (statement_identifier "LAB_00018ac2") (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_330 + 0x1d" (identifier "local_330") (+ "+") (number_literal "0x1d"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18a47;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18a47" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18a47")) (; ";")) (expression_statement "iVar6 = FUN_00028280();" (assignment_expression "iVar6 = FUN_00028280()" (identifier "iVar6") (= "=") (call_expression "FUN_00028280()" (identifier "FUN_00028280") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) goto LAB_00018a52;" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018a52;" (goto "goto") (statement_identifier "LAB_00018a52") (; ";"))) (labeled_statement "LAB_0001873d:\n        bVar27 = iVar6 == 0;" (statement_identifier "LAB_0001873d") (: ":") (expression_statement "bVar27 = iVar6 == 0;" (assignment_expression "bVar27 = iVar6 == 0" (identifier "bVar27") (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";"))) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" (identifier "iVar6") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar22 = (byte *)"unlabeled";" (assignment_expression "pbVar22 = (byte *)"unlabeled"" (identifier "pbVar22") (= "=") (cast_expression "(byte *)"unlabeled"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""unlabeled"" (" """) (string_content "unlabeled") (" """)))) (; ";")) (expression_statement "pbVar25 = (byte *)local_330[0x1d];" (assignment_expression "pbVar25 = (byte *)local_330[0x1d]" (identifier "pbVar25") (= "=") (cast_expression "(byte *)local_330[0x1d]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_330[0x1d]" (identifier "local_330") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        } while (bVar27);" (do "do") (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar26 = *pbVar22 < *pbVar25;\n          bVar27 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar22 < *pbVar25;" (assignment_expression "bVar26 = *pbVar22 < *pbVar25" (identifier "bVar26") (= "=") (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (< "<") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25")))) (; ";")) (expression_statement "bVar27 = *pbVar22 == *pbVar25;" (assignment_expression "bVar27 = *pbVar22 == *pbVar25" (identifier "bVar27") (= "=") (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (== "==") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25")))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1" (identifier "pbVar25") (= "=") (binary_expression "pbVar25 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar28 * -2" (identifier "pbVar25") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (expression_statement "cVar5 = (!bVar26 && !bVar27) != bVar26;" (assignment_expression "cVar5 = (!bVar26 && !bVar27) != bVar26" (identifier "cVar5") (= "=") (binary_expression "(!bVar26 && !bVar27) != bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" (( "(") (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (!= "!=") (identifier "bVar26"))) (; ";")) (if_statement "if (DAT_0003c308 == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" (if "if") (parenthesized_expression "(DAT_0003c308 == 0)" (( "(") (binary_expression "DAT_0003c308 == 0" (identifier "DAT_0003c308") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x18ca5;\n          piVar12 = __errno_location();\n          goto LAB_00018ca7;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18ca5;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18ca5" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18ca5")) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00018ca7;" (goto "goto") (statement_identifier "LAB_00018ca7") (; ";")) (} "}"))) (if_statement "if ((!bVar26 && !bVar27) == bVar26) {\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" (if "if") (parenthesized_expression "((!bVar26 && !bVar27) == bVar26)" (( "(") (binary_expression "(!bVar26 && !bVar27) == bVar26" (parenthesized_expression "(!bVar26 && !bVar27)" (( "(") (binary_expression "!bVar26 && !bVar27" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar26")) () ")")) (compound_statement "{\n          local_330[0x1f] = 0;\n          goto LAB_00018287;\n        }" ({ "{") (expression_statement "local_330[0x1f] = 0;" (assignment_expression "local_330[0x1f] = 0" (subscript_expression "local_330[0x1f]" (identifier "local_330") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00018287;" (goto "goto") (statement_identifier "LAB_00018287") (; ";")) (} "}"))) (expression_statement "local_330[0x1f] = 1;" (assignment_expression "local_330[0x1f] = 1" (subscript_expression "local_330[0x1f]" (identifier "local_330") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_0003c334 = '\x01';" (assignment_expression "DAT_0003c334 = '\x01'" (identifier "DAT_0003c334") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))) (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" (identifier "local_33c") (= "=") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" (identifier "uVar16") (= "=") (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]")) (& "&") (number_literal "0xf000"))) (; ";")) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" (if "if") (parenthesized_expression "(uVar16 != 0xa000)" (( "(") (binary_expression "uVar16 != 0xa000" (identifier "uVar16") (!= "!=") (number_literal "0xa000")) () ")")) (goto_statement "goto LAB_000182a0;" (goto "goto") (statement_identifier "LAB_000182a0") (; ";"))) (if_statement "if (DAT_0003c308 != 0) goto LAB_00018da0;" (if "if") (parenthesized_expression "(DAT_0003c308 != 0)" (( "(") (binary_expression "DAT_0003c308 != 0" (identifier "DAT_0003c308") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018da0;" (goto "goto") (statement_identifier "LAB_00018da0") (; ";"))) (labeled_statement "LAB_000187b9:\n      puVar23 = local_330;" (statement_identifier "LAB_000187b9") (: ":") (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" (identifier "puVar23") (= "=") (identifier "local_330")) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "local_330[0xe]" (identifier "local_330") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187d0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187d0" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x187d0")) (; ";")) (expression_statement "pcVar15 = (char *)FUN_0001b280();" (assignment_expression "pcVar15 = (char *)FUN_0001b280()" (identifier "pcVar15") (= "=") (cast_expression "(char *)FUN_0001b280()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001b280()" (identifier "FUN_0001b280") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar23[1] = pcVar15;" (assignment_expression "puVar23[1] = pcVar15" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if (pcVar15 == (char *)0x0) {\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }\n      else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar20 + -8) = 5;\n        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";\n        *(undefined4 *)(puVar20 + -0x10) = 0;\n        *(undefined4 *)(puVar20 + -0x14) = 0x19043;\n        dcgettext();\n        *(undefined4 *)(puVar20 + -0x14) = 0x19059;\n        FUN_00015440();\n        pcVar15 = (char *)local_330[1];\n        if (pcVar15 != (char *)0x0) goto LAB_000187e0;\nLAB_0001906d:\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";" (assignment_expression "*(char **)(puVar20 + -0xc) = "cannot read symbolic link %s"" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""cannot read symbolic link %s"" (" """) (string_content "cannot read symbolic link %s") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19043;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19043" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19043")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x19059;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x19059" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19059")) (; ";")) (expression_statement "FUN_00015440();" (call_expression "FUN_00015440()" (identifier "FUN_00015440") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar15 = (char *)local_330[1];" (assignment_expression "pcVar15 = (char *)local_330[1]" (identifier "pcVar15") (= "=") (cast_expression "(char *)local_330[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_330[1]" (identifier "local_330") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_000187e0;" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000187e0;" (goto "goto") (statement_identifier "LAB_000187e0") (; ";"))) (labeled_statement "LAB_0001906d:\n        iVar6 = 0;" (statement_identifier "LAB_0001906d") (: ":") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\nLAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }\n        puVar23 = local_330;\n        if (iVar6 == 0) goto LAB_0001906d;\n        if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }\n        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_000187e0:\n        if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" (statement_identifier "LAB_000187e0") (: ":") (if_statement "if (*pcVar15 == '/') {\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }\n        else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" (if "if") (parenthesized_expression "(*pcVar15 == '/')" (( "(") (binary_expression "*pcVar15 == '/'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\nLAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;\n          iVar6 = FUN_00024200();\n        }" ({ "{") (labeled_statement "LAB_00018f18:\n          *(char **)(puVar20 + -0x10) = pcVar15;" (statement_identifier "LAB_00018f18") (: ":") (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pcVar15")) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18f21;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18f21" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18f21")) (; ";")) (expression_statement "iVar6 = FUN_00024200();" (assignment_expression "iVar6 = FUN_00024200()" (identifier "iVar6") (= "=") (call_expression "FUN_00024200()" (identifier "FUN_00024200") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" (else "else") (compound_statement "{\n          *(uint **)(puVar20 + -0x10) = local_334;\n          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;\n          uVar16 = FUN_0001c010();\n          if (uVar16 == 0) goto LAB_00018f18;\n          local_33c = uVar16;\n          *(char **)(puVar20 + -0x10) = pcVar15;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18811;\n          sVar8 = strlen(*(char **)(puVar20 + -0x10));\n          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18823;\n          iVar6 = FUN_00023f30();\n          uVar16 = local_33c;\n          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }\n          *(uint *)(puVar20 + -8) = uVar16;\n          *(uint **)(puVar20 + -0xc) = local_334;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;\n          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));\n          *(char **)(puVar20 + -0xc) = pcVar15;\n          *(char **)(puVar20 + -0x10) = pcVar9;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18857;\n          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));\n        }" ({ "{") (expression_statement "*(uint **)(puVar20 + -0x10) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x187f7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x187f7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x187f7")) (; ";")) (expression_statement "uVar16 = FUN_0001c010();" (assignment_expression "uVar16 = FUN_0001c010()" (identifier "uVar16") (= "=") (call_expression "FUN_0001c010()" (identifier "FUN_0001c010") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar16 == 0) goto LAB_00018f18;" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018f18;" (goto "goto") (statement_identifier "LAB_00018f18") (; ";"))) (expression_statement "local_33c = uVar16;" (assignment_expression "local_33c = uVar16" (identifier "local_33c") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18811;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18811" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18811")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;" (assignment_expression "*(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_33c + 2 + sVar8" (binary_expression "local_33c + 2" (identifier "local_33c") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18823;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18823" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18823")) (; ";")) (expression_statement "iVar6 = FUN_00023f30();" (assignment_expression "iVar6 = FUN_00023f30()" (identifier "iVar6") (= "=") (call_expression "FUN_00023f30()" (identifier "FUN_00023f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar16 = local_33c;" (assignment_expression "uVar16 = local_33c" (identifier "uVar16") (= "=") (identifier "local_33c")) (; ";")) (if_statement "if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {\n            uVar16 = local_33c + 1;\n          }" (if "if") (parenthesized_expression "(*(char *)((int)local_334 + (local_33c - 1)) != '/')" (( "(") (binary_expression "*(char *)((int)local_334 + (local_33c - 1)) != '/'" (pointer_expression "*(char *)((int)local_334 + (local_33c - 1))" (* "*") (cast_expression "(char *)((int)local_334 + (local_33c - 1))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_334 + (local_33c - 1))" (( "(") (binary_expression "(int)local_334 + (local_33c - 1)" (cast_expression "(int)local_334" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_334")) (+ "+") (parenthesized_expression "(local_33c - 1)" (( "(") (binary_expression "local_33c - 1" (identifier "local_33c") (- "-") (number_literal "1")) () ")"))) () ")")))) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n            uVar16 = local_33c + 1;\n          }" ({ "{") (expression_statement "uVar16 = local_33c + 1;" (assignment_expression "uVar16 = local_33c + 1" (identifier "uVar16") (= "=") (binary_expression "local_33c + 1" (identifier "local_33c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar20 + -8) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -8) = uVar16" (pointer_expression "*(uint *)(puVar20 + -8)" (* "*") (cast_expression "(uint *)(puVar20 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(uint **)(puVar20 + -0xc) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0xc) = local_334" (pointer_expression "*(uint **)(puVar20 + -0xc)" (* "*") (cast_expression "(uint **)(puVar20 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1884e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1884e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1884e")) (; ";")) (expression_statement "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8));" (assignment_expression "pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" (identifier "pcVar9") (= "=") (call_expression "stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" (identifier "stpncpy") (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                           *(size_t *)(puVar20 + -8))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)(puVar20 + -8)" (* "*") (cast_expression "(size_t *)(puVar20 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(char **)(puVar20 + -0xc) = pcVar15;" (assignment_expression "*(char **)(puVar20 + -0xc) = pcVar15" (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "*(char **)(puVar20 + -0x10) = pcVar9;" (assignment_expression "*(char **)(puVar20 + -0x10) = pcVar9" (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18857;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18857" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18857")) (; ";")) (expression_statement "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));" (call_expression "strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" (identifier "strcpy") (argument_list "(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) () ")"))) (; ";")) (} "}"))))) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" (identifier "puVar23") (= "=") (identifier "local_330")) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0001906d;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001906d;" (goto "goto") (statement_identifier "LAB_0001906d") (; ";"))) (if_statement "if (local_330[0x21] == 0) {\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" (if "if") (parenthesized_expression "(local_330[0x21] == 0)" (( "(") (binary_expression "local_330[0x21] == 0" (subscript_expression "local_330[0x21]" (identifier "local_330") ([ "[") (number_literal "0x21") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar20 + -4) = 0x1911a;\n          cVar5 = FUN_00014c00();\n          if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x1911a;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x1911a" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x1911a")) (; ";")) (expression_statement "cVar5 = FUN_00014c00();" (assignment_expression "cVar5 = FUN_00014c00()" (identifier "cVar5") (= "=") (call_expression "FUN_00014c00()" (identifier "FUN_00014c00") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar5 != '\0') {\n            puVar23[0x21] = 0xffffffff;\n          }" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            puVar23[0x21] = 0xffffffff;\n          }" ({ "{") (expression_statement "puVar23[0x21] = 0xffffffff;" (assignment_expression "puVar23[0x21] = 0xffffffff" (subscript_expression "puVar23[0x21]" (identifier "puVar23") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0'))" (( "(") (binary_expression "(1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')" (parenthesized_expression "(1 < DAT_0003c2e4)" (( "(") (binary_expression "1 < DAT_0003c2e4" (number_literal "1") (< "<") (identifier "DAT_0003c2e4")) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c2d5 != '\0')" (( "(") (binary_expression "DAT_0003c2d5 != '\0'" (identifier "DAT_0003c2d5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 **)(puVar20 + -8) = local_324;\n          *(int *)(puVar20 + -0xc) = iVar6;\n          *(undefined4 *)(puVar20 + -0x10) = 3;\n          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;\n          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));\n          if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }\n        }" ({ "{") (expression_statement "*(undefined1 **)(puVar20 + -8) = local_324;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_324" (pointer_expression "*(undefined1 **)(puVar20 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_324")) (; ";")) (expression_statement "*(int *)(puVar20 + -0xc) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar6" (pointer_expression "*(int *)(puVar20 + -0xc)" (* "*") (cast_expression "(int *)(puVar20 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 3" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18d4a" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18d4a")) (; ";")) (expression_statement "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8));" (assignment_expression "iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" (identifier "iVar13") (= "=") (call_expression "__xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" (identifier "__xstat64") (argument_list "(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),\n                             *(stat64 **)(puVar20 + -8))" (( "(") (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar20 + -0xc)" (* "*") (cast_expression "(char **)(puVar20 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(stat64 **)(puVar20 + -8)" (* "*") (cast_expression "(stat64 **)(puVar20 + -8)" (( "(") (type_descriptor "stat64 **" (type_identifier "stat64") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined1 *)((int)local_330 + 0x79) = 1;\n            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }\n          }" ({ "{") (expression_statement "*(undefined1 *)((int)local_330 + 0x79) = 1;" (assignment_expression "*(undefined1 *)((int)local_330 + 0x79) = 1" (pointer_expression "*(undefined1 *)((int)local_330 + 0x79)" (* "*") (cast_expression "(undefined1 *)((int)local_330 + 0x79)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_330 + 0x79)" (( "(") (binary_expression "(int)local_330 + 0x79" (cast_expression "(int)local_330" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_330")) (+ "+") (number_literal "0x79")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)) {\n              local_330[0x1c] = local_314;\n            }" (if "if") (parenthesized_expression "((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000))" (( "(") (binary_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||\n               ((local_314 & 0xf000) != 0x4000)" (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c308 == 0))" (( "(") (binary_expression "((char)local_344 == '\0') || (DAT_0003c308 == 0)" (parenthesized_expression "((char)local_344 == '\0')" (( "(") (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c308 == 0)" (( "(") (binary_expression "DAT_0003c308 == 0" (identifier "DAT_0003c308") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_314 & 0xf000) != 0x4000)" (( "(") (binary_expression "(local_314 & 0xf000) != 0x4000" (parenthesized_expression "(local_314 & 0xf000)" (( "(") (binary_expression "local_314 & 0xf000" (identifier "local_314") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")"))) () ")")) (compound_statement "{\n              local_330[0x1c] = local_314;\n            }" ({ "{") (expression_statement "local_330[0x1c] = local_314;" (assignment_expression "local_330[0x1c] = local_314" (subscript_expression "local_330[0x1c]" (identifier "local_330") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "local_314")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18899;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18899" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18899")) (; ";")) (expression_statement "free(*(void **)(puVar20 + -0x10));" (call_expression "free(*(void **)(puVar20 + -0x10))" (identifier "free") (argument_list "(*(void **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(void **)(puVar20 + -0x10)" (* "*") (cast_expression "(void **)(puVar20 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" (identifier "local_334") (= "=") (cast_expression "(uint *)local_330[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "uVar16 = (uint)local_330[7] & 0xf000;" (assignment_expression "uVar16 = (uint)local_330[7] & 0xf000" (identifier "uVar16") (= "=") (binary_expression "(uint)local_330[7] & 0xf000" (cast_expression "(uint)local_330[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0xf000"))) (; ";")) (if_statement "if (uVar16 != 0xa000) goto LAB_000182a0;" (if "if") (parenthesized_expression "(uVar16 != 0xa000)" (( "(") (binary_expression "uVar16 != 0xa000" (identifier "uVar16") (!= "!=") (number_literal "0xa000")) () ")")) (goto_statement "goto LAB_000182a0;" (goto "goto") (statement_identifier "LAB_000182a0") (; ";"))) (labeled_statement "LAB_000188bb:\n      local_330[0x1b] = 6;" (statement_identifier "LAB_000188bb") (: ":") (expression_statement "local_330[0x1b] = 6;" (assignment_expression "local_330[0x1b] = 6" (subscript_expression "local_330[0x1b]" (identifier "local_330") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "6")) (; ";"))) (} "}")) (else_clause "else {\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" (else "else") (compound_statement "{\nLAB_00018287:\n      local_33c = local_330[7];\n      uVar16 = local_330[7] & 0xf000;\n      if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }\nLAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }\n    }" ({ "{") (labeled_statement "LAB_00018287:\n      local_33c = local_330[7];" (statement_identifier "LAB_00018287") (: ":") (expression_statement "local_33c = local_330[7];" (assignment_expression "local_33c = local_330[7]" (identifier "local_33c") (= "=") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (expression_statement "uVar16 = local_330[7] & 0xf000;" (assignment_expression "uVar16 = local_330[7] & 0xf000" (identifier "uVar16") (= "=") (binary_expression "local_330[7] & 0xf000" (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]")) (& "&") (number_literal "0xf000"))) (; ";")) (if_statement "if (uVar16 == 0xa000) {\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" (if "if") (parenthesized_expression "(uVar16 == 0xa000)" (( "(") (binary_expression "uVar16 == 0xa000" (identifier "uVar16") (== "==") (number_literal "0xa000")) () ")")) (compound_statement "{\nLAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;\n        goto LAB_000188bb;\n      }" ({ "{") (labeled_statement "LAB_00018da0:\n        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" (statement_identifier "LAB_00018da0") (: ":") (if_statement "if (DAT_0003c2d5 != '\0') goto LAB_000187b9;" (if "if") (parenthesized_expression "(DAT_0003c2d5 != '\0')" (( "(") (binary_expression "DAT_0003c2d5 != '\0'" (identifier "DAT_0003c2d5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000187b9;" (goto "goto") (statement_identifier "LAB_000187b9") (; ";")))) (goto_statement "goto LAB_000188bb;" (goto "goto") (statement_identifier "LAB_000188bb") (; ";")) (} "}"))) (labeled_statement "LAB_000182a0:\n      if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" (statement_identifier "LAB_000182a0") (: ":") (if_statement "if (uVar16 == 0x4000) {\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }\n      else {\n        local_330[0x1b] = 5;\n      }" (if "if") (parenthesized_expression "(uVar16 == 0x4000)" (( "(") (binary_expression "uVar16 == 0x4000" (identifier "uVar16") (== "==") (number_literal "0x4000")) () ")")) (compound_statement "{\n        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }\n      }" ({ "{") (if_statement "if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {\n          local_330[0x1b] = 3;\n        }\n        else {\n          local_330[0x1b] = 9;\n        }" (if "if") (parenthesized_expression "(((char)local_344 == '\0') || (DAT_0003c2cd != '\0'))" (( "(") (binary_expression "((char)local_344 == '\0') || (DAT_0003c2cd != '\0')" (parenthesized_expression "((char)local_344 == '\0')" (( "(") (binary_expression "(char)local_344 == '\0'" (cast_expression "(char)local_344" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_344")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c2cd != '\0')" (( "(") (binary_expression "DAT_0003c2cd != '\0'" (identifier "DAT_0003c2cd") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          local_330[0x1b] = 3;\n        }" ({ "{") (expression_statement "local_330[0x1b] = 3;" (assignment_expression "local_330[0x1b] = 3" (subscript_expression "local_330[0x1b]" (identifier "local_330") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n          local_330[0x1b] = 9;\n        }" (else "else") (compound_statement "{\n          local_330[0x1b] = 9;\n        }" ({ "{") (expression_statement "local_330[0x1b] = 9;" (assignment_expression "local_330[0x1b] = 9" (subscript_expression "local_330[0x1b]" (identifier "local_330") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "9")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_330[0x1b] = 5;\n      }" (else "else") (compound_statement "{\n        local_330[0x1b] = 5;\n      }" ({ "{") (expression_statement "local_330[0x1b] = 5;" (assignment_expression "local_330[0x1b] = 5" (subscript_expression "local_330[0x1b]" (identifier "local_330") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "5")) (; ";")) (} "}"))))) (} "}")))) (expression_statement "uVar17 = local_330[0x11];" (assignment_expression "uVar17 = local_330[0x11]" (identifier "uVar17") (= "=") (subscript_expression "local_330[0x11]" (identifier "local_330") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "uVar24 = local_330[0x12];" (assignment_expression "uVar24 = local_330[0x12]" (identifier "uVar24") (= "=") (subscript_expression "local_330[0x12]" (identifier "local_330") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (if_statement "if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }\n    else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" (if "if") (parenthesized_expression "((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0'))" (( "(") (binary_expression "(DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')" (parenthesized_expression "(DAT_0003c308 == 0)" (( "(") (binary_expression "DAT_0003c308 == 0" (identifier "DAT_0003c308") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0003c2fc != '\0')" (( "(") (binary_expression "DAT_0003c2fc != '\0'" (identifier "DAT_0003c2fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;\n      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = 0x200;\n      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;\n      *(uint **)(puVar20 + -0x18) = local_2ac;\n      *(undefined4 *)(puVar20 + -0x1c) = uVar24;\n      *(undefined4 *)(puVar20 + -0x20) = uVar17;\n      local_334 = local_2ac;\n      *(undefined4 *)(puVar20 + -0x24) = 0x18505;\n      uVar7 = FUN_0001df30();\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x18510;\n      iVar6 = FUN_0001fb50();\n      if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }\n      if (DAT_0003c308 != 0) goto LAB_000182df;\n      if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }\n      if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }\n      if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }\n      if (DAT_0003c335 != '\0') goto LAB_0001855f;\nLAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;\n      *(undefined1 **)(puVar20 + -8) = local_2c1;\n      uVar7 = local_330[8];\n      *(undefined4 *)(puVar20 + -0xc) = 0;\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }\n      local_334 = (uint *)local_330[7];\n      if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003c2f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "DAT_0003c2f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003c2f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "DAT_0003c2f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x200;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x200" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x200")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "DAT_0003c2f8")) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" (* "*") (cast_expression "(uint **)(puVar20 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = uVar24;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = uVar24" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = uVar17;" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = uVar17" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" (identifier "local_334") (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18505;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18505" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x18505")) (; ";")) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" (identifier "uVar7") (= "=") (call_expression "FUN_0001df30()" (identifier "FUN_0001df30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18510;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18510" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18510")) (; ";")) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" (identifier "iVar6") (= "=") (call_expression "FUN_0001fb50()" (identifier "FUN_0001fb50") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (DAT_0003c32c < iVar6) {\n        DAT_0003c32c = iVar6;\n      }" (if "if") (parenthesized_expression "(DAT_0003c32c < iVar6)" (( "(") (binary_expression "DAT_0003c32c < iVar6" (identifier "DAT_0003c32c") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n        DAT_0003c32c = iVar6;\n      }" ({ "{") (expression_statement "DAT_0003c32c = iVar6;" (assignment_expression "DAT_0003c32c = iVar6" (identifier "DAT_0003c32c") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (if_statement "if (DAT_0003c308 != 0) goto LAB_000182df;" (if "if") (parenthesized_expression "(DAT_0003c308 != 0)" (( "(") (binary_expression "DAT_0003c308 != 0" (identifier "DAT_0003c308") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000182df;" (goto "goto") (statement_identifier "LAB_000182df") (; ";"))) (if_statement "if (DAT_0003b1f9 != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_0003b1f9 != '\0')" (( "(") (binary_expression "DAT_0003b1f9 != '\0'" (identifier "DAT_0003b1f9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18eae;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18eae;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18eae" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18eae")) (; ";")) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" (identifier "iVar6") (= "=") (call_expression "FUN_00018000()" (identifier "FUN_00018000") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (DAT_0003c320 < iVar6) {\n          DAT_0003c320 = iVar6;\n        }" (if "if") (parenthesized_expression "(DAT_0003c320 < iVar6)" (( "(") (binary_expression "DAT_0003c320 < iVar6" (identifier "DAT_0003c320") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          DAT_0003c320 = iVar6;\n        }" ({ "{") (expression_statement "DAT_0003c320 = iVar6;" (assignment_expression "DAT_0003c320 = iVar6" (identifier "DAT_0003c320") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0003b1f8 != '\0') {\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_0003b1f8 != '\0')" (( "(") (binary_expression "DAT_0003b1f8 != '\0'" (identifier "DAT_0003b1f8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar16 = local_330[10];\n        if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }\n        if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }\n      }" ({ "{") (expression_statement "uVar16 = local_330[10];" (assignment_expression "uVar16 = local_330[10]" (identifier "uVar16") (= "=") (subscript_expression "local_330[10]" (identifier "local_330") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (DAT_0003c2fd == '\0') {\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }\n        else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" (if "if") (parenthesized_expression "(DAT_0003c2fd == '\0')" (( "(") (binary_expression "DAT_0003c2fd == '\0'" (identifier "DAT_0003c2fd") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_344 = uVar16;\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190df;\n          iVar6 = FUN_0001f1e0();\n          uVar16 = local_344;\n          if (iVar6 == 0) goto LAB_00018e2e;\n          *(undefined4 *)(puVar20 + -0xc) = 0;\n          *(int *)(puVar20 + -0x10) = iVar6;\n          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;\n          pcVar15 = (char *)FUN_0001fb50();\n          if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }\n        }" ({ "{") (expression_statement "local_344 = uVar16;" (assignment_expression "local_344 = uVar16" (identifier "local_344") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190df;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190df" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190df")) (; ";")) (expression_statement "iVar6 = FUN_0001f1e0();" (assignment_expression "iVar6 = FUN_0001f1e0()" (identifier "iVar6") (= "=") (call_expression "FUN_0001f1e0()" (identifier "FUN_0001f1e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar16 = local_344;" (assignment_expression "uVar16 = local_344" (identifier "uVar16") (= "=") (identifier "local_344")) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00018e2e;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018e2e;" (goto "goto") (statement_identifier "LAB_00018e2e") (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x190fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x190fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190fb")) (; ";")) (expression_statement "pcVar15 = (char *)FUN_0001fb50();" (assignment_expression "pcVar15 = (char *)FUN_0001fb50()" (identifier "pcVar15") (= "=") (cast_expression "(char *)FUN_0001fb50()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001fb50()" (identifier "FUN_0001fb50") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((int)pcVar15 < 0) {\n            pcVar15 = (char *)0x0;\n          }" (if "if") (parenthesized_expression "((int)pcVar15 < 0)" (( "(") (binary_expression "(int)pcVar15 < 0" (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar15 = (char *)0x0;\n          }" ({ "{") (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" (else "else") (compound_statement "{\nLAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;\n          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;\n          *(undefined4 *)(puVar20 + -0x18) = 0xb;\n          *(undefined4 *)(puVar20 + -0x1c) = 1;\n          *(uint **)(puVar20 + -0x20) = local_334;\n          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;\n          __sprintf_chk();\n          puVar14 = local_334;\n          do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);\n          bVar26 = (uVar18 & 0x8080) == 0;\n          if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }\n          if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }\n          pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));\n        }" ({ "{") (labeled_statement "LAB_00018e2e:\n          *(uint *)(puVar20 + -0x10) = uVar16;" (statement_identifier "LAB_00018e2e") (: ":") (expression_statement "*(uint *)(puVar20 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar16")) (; ";"))) (expression_statement "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &DAT_0002d97b" (pointer_expression "*(undefined **)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&DAT_0002d97b" (& "&") (identifier "DAT_0002d97b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0xb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0xb" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x20) = local_334;" (assignment_expression "*(uint **)(puVar20 + -0x20) = local_334" (pointer_expression "*(uint **)(puVar20 + -0x20)" (* "*") (cast_expression "(uint **)(puVar20 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18e48;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18e48" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x18e48")) (; ";")) (expression_statement "__sprintf_chk();" (call_expression "__sprintf_chk()" (identifier "__sprintf_chk") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar14 = local_334;" (assignment_expression "puVar14 = local_334" (identifier "puVar14") (= "=") (identifier "local_334")) (; ";")) (do_statement "do {\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          } while (uVar16 == 0);" (do "do") (compound_statement "{\n            puVar11 = puVar14;\n            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;\n            uVar16 = uVar18 & 0x80808080;\n            puVar14 = puVar11 + 1;\n          }" ({ "{") (expression_statement "puVar11 = puVar14;" (assignment_expression "puVar11 = puVar14" (identifier "puVar11") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar18 = *puVar11 + 0xfefefeff & ~*puVar11" (identifier "uVar18") (= "=") (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar11" (~ "~") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))))) (; ";")) (expression_statement "uVar16 = uVar18 & 0x80808080;" (assignment_expression "uVar16 = uVar18 & 0x80808080" (identifier "uVar16") (= "=") (binary_expression "uVar18 & 0x80808080" (identifier "uVar18") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar14 = puVar11 + 1;" (assignment_expression "puVar14 = puVar11 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar26 = (uVar18 & 0x8080) == 0;" (assignment_expression "bVar26 = (uVar18 & 0x8080) == 0" (identifier "bVar26") (= "=") (binary_expression "(uVar18 & 0x8080) == 0" (parenthesized_expression "(uVar18 & 0x8080)" (( "(") (binary_expression "uVar18 & 0x8080" (identifier "uVar18") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar26) {\n            uVar16 = uVar16 >> 0x10;\n          }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n            uVar16 = uVar16 >> 0x10;\n          }" ({ "{") (expression_statement "uVar16 = uVar16 >> 0x10;" (assignment_expression "uVar16 = uVar16 >> 0x10" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 0x10" (identifier "uVar16") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar26) {\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n            puVar14 = (uint *)((int)puVar11 + 6);\n          }" ({ "{") (expression_statement "puVar14 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar14 = (uint *)((int)puVar11 + 6)" (identifier "puVar14") (= "=") (cast_expression "(uint *)((int)puVar11 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 6)" (( "(") (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));" (assignment_expression "pcVar15 = (char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" (identifier "pcVar15") (= "=") (cast_expression "(char *)((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334))" (( "(") (binary_expression "(int)puVar14 +\n                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar16,(byte)uVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar16,(byte)uVar16)" (identifier "CARRY1") (argument_list "((byte)uVar16,(byte)uVar16)" (( "(") (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (, ",") (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_334" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_334"))) () ")"))) () ")")))) (; ";")) (} "}")))) (if_statement "if ((int)DAT_0003c31c < (int)pcVar15) {\n          DAT_0003c31c = pcVar15;\n        }" (if "if") (parenthesized_expression "((int)DAT_0003c31c < (int)pcVar15)" (( "(") (binary_expression "(int)DAT_0003c31c < (int)pcVar15" (cast_expression "(int)DAT_0003c31c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c31c")) (< "<") (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15"))) () ")")) (compound_statement "{\n          DAT_0003c31c = pcVar15;\n        }" ({ "{") (expression_statement "DAT_0003c31c = pcVar15;" (assignment_expression "DAT_0003c31c = pcVar15" (identifier "DAT_0003c31c") (= "=") (identifier "pcVar15")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0003c2fe != '\0') {\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_0003c2fe != '\0')" (( "(") (binary_expression "DAT_0003c2fe != '\0'" (identifier "DAT_0003c2fe") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = 0x18dfe;\n        iVar6 = FUN_00018000();\n        if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x18dfe;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x18dfe" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x18dfe")) (; ";")) (expression_statement "iVar6 = FUN_00018000();" (assignment_expression "iVar6 = FUN_00018000()" (identifier "iVar6") (= "=") (call_expression "FUN_00018000()" (identifier "FUN_00018000") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (DAT_0003c318 < iVar6) {\n          DAT_0003c318 = iVar6;\n        }" (if "if") (parenthesized_expression "(DAT_0003c318 < iVar6)" (( "(") (binary_expression "DAT_0003c318 < iVar6" (identifier "DAT_0003c318") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          DAT_0003c318 = iVar6;\n        }" ({ "{") (expression_statement "DAT_0003c318 = iVar6;" (assignment_expression "DAT_0003c318 = iVar6" (identifier "DAT_0003c318") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0003c335 != '\0') goto LAB_0001855f;" (if "if") (parenthesized_expression "(DAT_0003c335 != '\0')" (( "(") (binary_expression "DAT_0003c335 != '\0'" (identifier "DAT_0003c335") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001855f;" (goto "goto") (statement_identifier "LAB_0001855f") (; ";"))) (labeled_statement "LAB_0001857f:\n      if (DAT_0003c308 != 0) goto LAB_000182ec;" (statement_identifier "LAB_0001857f") (: ":") (if_statement "if (DAT_0003c308 != 0) goto LAB_000182ec;" (if "if") (parenthesized_expression "(DAT_0003c308 != 0)" (( "(") (binary_expression "DAT_0003c308 != 0" (identifier "DAT_0003c308") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000182ec;" (goto "goto") (statement_identifier "LAB_000182ec") (; ";")))) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_2c1;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_2c1" (pointer_expression "*(undefined1 **)(puVar20 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_2c1")) (; ";")) (expression_statement "uVar7 = local_330[8];" (assignment_expression "uVar7 = local_330[8]" (identifier "uVar7") (= "=") (subscript_expression "local_330[8]" (identifier "local_330") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x185a9")) (; ";")) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" (identifier "uVar7") (= "=") (call_expression "FUN_0001f470()" (identifier "FUN_0001f470") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x185b1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x185b1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x185b1")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)DAT_0003c328 < (int)sVar8) {\n        DAT_0003c328 = sVar8;\n      }" (if "if") (parenthesized_expression "((int)DAT_0003c328 < (int)sVar8)" (( "(") (binary_expression "(int)DAT_0003c328 < (int)sVar8" (cast_expression "(int)DAT_0003c328" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c328")) (< "<") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n        DAT_0003c328 = sVar8;\n      }" ({ "{") (expression_statement "DAT_0003c328 = sVar8;" (assignment_expression "DAT_0003c328 = sVar8" (identifier "DAT_0003c328") (= "=") (identifier "sVar8")) (; ";")) (} "}"))) (expression_statement "local_334 = (uint *)local_330[7];" (assignment_expression "local_334 = (uint *)local_330[7]" (identifier "local_334") (= "=") (cast_expression "(uint *)local_330[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_330[7]" (identifier "local_330") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (((uint)local_334 & 0xb000) == 0x2000) {\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }\n      else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" (if "if") (parenthesized_expression "(((uint)local_334 & 0xb000) == 0x2000)" (( "(") (binary_expression "((uint)local_334 & 0xb000) == 0x2000" (parenthesized_expression "((uint)local_334 & 0xb000)" (( "(") (binary_expression "(uint)local_334 & 0xb000" (cast_expression "(uint)local_334" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_334")) (& "&") (number_literal "0xb000")) () ")")) (== "==") (number_literal "0x2000")) () ")")) (compound_statement "{\n        uVar16 = local_330[0xc];\n        uVar18 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_2ac;\n        local_344 = uVar18;\n        local_340 = uVar16;\n        local_334 = local_2ac;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18623;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }\n        iVar6 = local_330[0xc];\n        uVar16 = local_330[0xb];\n        *(uint **)(puVar20 + -8) = local_334;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18665;\n        uVar7 = FUN_0001f470();\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }\n        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" ({ "{") (expression_statement "uVar16 = local_330[0xc];" (assignment_expression "uVar16 = local_330[0xc]" (identifier "uVar16") (= "=") (subscript_expression "local_330[0xc]" (identifier "local_330") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar18 = local_330[0xb];" (assignment_expression "uVar18 = local_330[0xb]" (identifier "uVar18") (= "=") (subscript_expression "local_330[0xb]" (identifier "local_330") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" (* "*") (cast_expression "(uint **)(puVar20 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "local_344 = uVar18;" (assignment_expression "local_344 = uVar18" (identifier "local_344") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "local_340 = uVar16;" (assignment_expression "local_340 = uVar16" (identifier "local_340") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "local_334 = local_2ac;" (assignment_expression "local_334 = local_2ac" (identifier "local_334") (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;" (assignment_expression "*(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000" (binary_expression "uVar18 >> 8 & 0xfff" (binary_expression "uVar18 >> 8" (identifier "uVar18") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "uVar16 & 0xfffff000" (identifier "uVar16") (& "&") (number_literal "0xfffff000")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18623;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18623" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18623")) (; ";")) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" (identifier "uVar7") (= "=") (call_expression "FUN_0001f470()" (identifier "FUN_0001f470") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1862b;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1862b" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1862b")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)DAT_0003c314 < (int)sVar8) {\n          DAT_0003c314 = sVar8;\n        }" (if "if") (parenthesized_expression "((int)DAT_0003c314 < (int)sVar8)" (( "(") (binary_expression "(int)DAT_0003c314 < (int)sVar8" (cast_expression "(int)DAT_0003c314" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c314")) (< "<") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n          DAT_0003c314 = sVar8;\n        }" ({ "{") (expression_statement "DAT_0003c314 = sVar8;" (assignment_expression "DAT_0003c314 = sVar8" (identifier "DAT_0003c314") (= "=") (identifier "sVar8")) (; ";")) (} "}"))) (expression_statement "iVar6 = local_330[0xc];" (assignment_expression "iVar6 = local_330[0xc]" (identifier "iVar6") (= "=") (subscript_expression "local_330[0xc]" (identifier "local_330") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar16 = local_330[0xb];" (assignment_expression "uVar16 = local_330[0xb]" (identifier "uVar16") (= "=") (subscript_expression "local_330[0xb]" (identifier "local_330") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar20 + -8) = local_334;" (assignment_expression "*(uint **)(puVar20 + -8) = local_334" (pointer_expression "*(uint **)(puVar20 + -8)" (* "*") (cast_expression "(uint **)(puVar20 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_334")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff;" (assignment_expression "*(uint *)(puVar20 + -0x10) =\n             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |\n             uVar16 & 0xff" (binary_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8" (call_expression "(uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" (call_expression "(uint)(uint3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uint3)" (( "(") (identifier "uint3") () ")"))) (argument_list "((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8))" (( "(") (binary_expression "(uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)" (call_expression "(uint3)(uVar16 >> 0x14)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "(uVar16 >> 0x14)" (( "(") (binary_expression "uVar16 >> 0x14" (identifier "uVar16") (>> ">>") (number_literal "0x14")) () ")"))) (| "|") (call_expression "(uint3)((uint)(iVar6 << 0x14) >> 8)" (parenthesized_expression "(uint3)" (( "(") (identifier "uint3") () ")")) (argument_list "((uint)(iVar6 << 0x14) >> 8)" (( "(") (binary_expression "(uint)(iVar6 << 0x14) >> 8" (call_expression "(uint)(iVar6 << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 << 0x14)" (( "(") (binary_expression "iVar6 << 0x14" (identifier "iVar6") (<< "<<") (number_literal "0x14")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) () ")"))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18665;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18665" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18665")) (; ";")) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" (identifier "uVar7") (= "=") (call_expression "FUN_0001f470()" (identifier "FUN_0001f470") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x1866d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x1866d" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1866d")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)DAT_0003c310 < (int)sVar8) {\n          DAT_0003c310 = sVar8;\n        }" (if "if") (parenthesized_expression "((int)DAT_0003c310 < (int)sVar8)" (( "(") (binary_expression "(int)DAT_0003c310 < (int)sVar8" (cast_expression "(int)DAT_0003c310" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c310")) (< "<") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n          DAT_0003c310 = sVar8;\n        }" ({ "{") (expression_statement "DAT_0003c310 = sVar8;" (assignment_expression "DAT_0003c310 = sVar8" (identifier "DAT_0003c310") (= "=") (identifier "sVar8")) (; ";")) (} "}"))) (expression_statement "iVar6 = DAT_0003c310 + 2 + DAT_0003c314;" (assignment_expression "iVar6 = DAT_0003c310 + 2 + DAT_0003c314" (identifier "iVar6") (= "=") (binary_expression "DAT_0003c310 + 2 + DAT_0003c314" (binary_expression "DAT_0003c310 + 2" (identifier "DAT_0003c310") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0003c314"))) (; ";")) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" (if "if") (parenthesized_expression "(iVar6 <= DAT_0003c30c)" (( "(") (binary_expression "iVar6 <= DAT_0003c30c" (identifier "iVar6") (<= "<=") (identifier "DAT_0003c30c")) () ")")) (goto_statement "goto LAB_000182ec;" (goto "goto") (statement_identifier "LAB_000182ec") (; ";"))) (} "}")) (else_clause "else {\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;\n        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = 1;\n        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;\n        *(uint **)(puVar20 + -0x18) = local_2ac;\n        puVar23 = local_330;\n        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];\n        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];\n        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;\n        uVar7 = FUN_0001df30();\n        *(undefined4 *)(puVar20 + -0xc) = 0;\n        *(undefined4 *)(puVar20 + -0x10) = uVar7;\n        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;\n        iVar6 = FUN_0001fb50();\n        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = DAT_0003b1f4" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "DAT_0003b1f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = DAT_0003b1f0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "DAT_0003b1f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "DAT_0003c2ec")) (; ";")) (expression_statement "*(uint **)(puVar20 + -0x18) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -0x18) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -0x18)" (* "*") (cast_expression "(uint **)(puVar20 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" (identifier "puVar23") (= "=") (identifier "local_330")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = local_330[0xf]" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (subscript_expression "local_330[0xf]" (identifier "local_330") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];" (assignment_expression "*(undefined4 *)(puVar20 + -0x20) = puVar23[0xe]" (pointer_expression "*(undefined4 *)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (subscript_expression "puVar23[0xe]" (identifier "puVar23") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x18c7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x18c7e")) (; ";")) (expression_statement "uVar7 = FUN_0001df30();" (assignment_expression "uVar7 = FUN_0001df30()" (identifier "uVar7") (= "=") (call_expression "FUN_0001df30()" (identifier "FUN_0001df30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18c89")) (; ";")) (expression_statement "iVar6 = FUN_0001fb50();" (assignment_expression "iVar6 = FUN_0001fb50()" (identifier "iVar6") (= "=") (call_expression "FUN_0001fb50()" (identifier "FUN_0001fb50") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;" (if "if") (parenthesized_expression "(iVar6 <= DAT_0003c30c)" (( "(") (binary_expression "iVar6 <= DAT_0003c30c" (identifier "iVar6") (<= "<=") (identifier "DAT_0003c30c")) () ")")) (goto_statement "goto LAB_000182ec;" (goto "goto") (statement_identifier "LAB_000182ec") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" (else "else") (compound_statement "{\nLAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }\nLAB_000182ec:\n      iVar6 = DAT_0003c30c;\n    }" ({ "{") (labeled_statement "LAB_000182df:\n      if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" (statement_identifier "LAB_000182df") (: ":") (if_statement "if (DAT_0003c335 != '\0') {\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" (if "if") (parenthesized_expression "(DAT_0003c335 != '\0')" (( "(") (binary_expression "DAT_0003c335 != '\0'" (identifier "DAT_0003c335") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];\n        *(undefined4 *)(puVar20 + -0x14) = 0x18570;\n        sVar8 = strlen(*(char **)(puVar20 + -0x10));\n        if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }\n        goto LAB_0001857f;\n      }" ({ "{") (labeled_statement "LAB_0001855f:\n        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" (statement_identifier "LAB_0001855f") (: ":") (expression_statement "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = local_330[0x1d]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_330[0x1d]" (identifier "local_330") ([ "[") (number_literal "0x1d") (] "]"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18570;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18570" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18570")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)DAT_0003c324 < (int)sVar8) {\n          DAT_0003c324 = sVar8;\n        }" (if "if") (parenthesized_expression "((int)DAT_0003c324 < (int)sVar8)" (( "(") (binary_expression "(int)DAT_0003c324 < (int)sVar8" (cast_expression "(int)DAT_0003c324" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c324")) (< "<") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n          DAT_0003c324 = sVar8;\n        }" ({ "{") (expression_statement "DAT_0003c324 = sVar8;" (assignment_expression "DAT_0003c324 = sVar8" (identifier "DAT_0003c324") (= "=") (identifier "sVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001857f;" (goto "goto") (statement_identifier "LAB_0001857f") (; ";")) (} "}")))) (labeled_statement "LAB_000182ec:\n      iVar6 = DAT_0003c30c;" (statement_identifier "LAB_000182ec") (: ":") (expression_statement "iVar6 = DAT_0003c30c;" (assignment_expression "iVar6 = DAT_0003c30c" (identifier "iVar6") (= "=") (identifier "DAT_0003c30c")) (; ";"))) (} "}")))) (expression_statement "DAT_0003c30c = iVar6;" (assignment_expression "DAT_0003c30c = iVar6" (identifier "DAT_0003c30c") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (DAT_0003c2d4 != '\0') {\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_0003c2d4 != '\0')" (( "(") (binary_expression "DAT_0003c2d4 != '\0'" (identifier "DAT_0003c2d4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(uint **)(puVar20 + -8) = local_2ac;\n      puVar23 = local_330;\n      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];\n      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];\n      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;\n      uVar7 = FUN_0001f470();\n      *(undefined4 *)(puVar20 + -0x10) = uVar7;\n      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;\n      sVar8 = strlen(*(char **)(puVar20 + -0x10));\n      if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }\n    }" ({ "{") (expression_statement "*(uint **)(puVar20 + -8) = local_2ac;" (assignment_expression "*(uint **)(puVar20 + -8) = local_2ac" (pointer_expression "*(uint **)(puVar20 + -8)" (* "*") (cast_expression "(uint **)(puVar20 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_2ac")) (; ";")) (expression_statement "puVar23 = local_330;" (assignment_expression "puVar23 = local_330" (identifier "puVar23") (= "=") (identifier "local_330")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = local_330[0x1a]" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "local_330[0x1a]" (identifier "local_330") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = puVar23[0x19]" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "puVar23[0x19]" (identifier "puVar23") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186cb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186cb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x186cb")) (; ";")) (expression_statement "uVar7 = FUN_0001f470();" (assignment_expression "uVar7 = FUN_0001f470()" (identifier "uVar7") (= "=") (call_expression "FUN_0001f470()" (identifier "FUN_0001f470") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x186d3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x186d3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x186d3")) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(puVar20 + -0x10));" (assignment_expression "sVar8 = strlen(*(char **)(puVar20 + -0x10))" (identifier "sVar8") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x10)" (* "*") (cast_expression "(char **)(puVar20 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)DAT_0003c330 < (int)sVar8) {\n        DAT_0003c330 = sVar8;\n      }" (if "if") (parenthesized_expression "((int)DAT_0003c330 < (int)sVar8)" (( "(") (binary_expression "(int)DAT_0003c330 < (int)sVar8" (cast_expression "(int)DAT_0003c330" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0003c330")) (< "<") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n        DAT_0003c330 = sVar8;\n      }" ({ "{") (expression_statement "DAT_0003c330 = sVar8;" (assignment_expression "DAT_0003c330 = sVar8" (identifier "DAT_0003c330") (= "=") (identifier "sVar8")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000182fb:\n  *(uint **)(puVar20 + -0x10) = local_338;" (statement_identifier "LAB_000182fb") (: ":") (expression_statement "*(uint **)(puVar20 + -0x10) = local_338;" (assignment_expression "*(uint **)(puVar20 + -0x10) = local_338" (pointer_expression "*(uint **)(puVar20 + -0x10)" (* "*") (cast_expression "(uint **)(puVar20 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_338")) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x18309;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x18309" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x18309")) (; ";")) (expression_statement "uVar7 = FUN_00024200();" (assignment_expression "uVar7 = FUN_00024200()" (identifier "uVar7") (= "=") (call_expression "FUN_00024200()" (identifier "FUN_00024200") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_0003c358 = DAT_0003c358 + 1;" (assignment_expression "DAT_0003c358 = DAT_0003c358 + 1" (identifier "DAT_0003c358") (= "=") (binary_expression "DAT_0003c358 + 1" (identifier "DAT_0003c358") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_330 = uVar7;" (assignment_expression "*local_330 = uVar7" (pointer_expression "*local_330" (* "*") (identifier "local_330")) (= "=") (identifier "uVar7")) (; ";")) (labeled_statement "LAB_0001831b:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" (statement_identifier "LAB_0001831b") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(uVar24,uVar17);\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return CONCAT44(uVar24,uVar17);\n  }" ({ "{") (return_statement "return CONCAT44(uVar24,uVar17);" (return "return") (call_expression "CONCAT44(uVar24,uVar17)" (identifier "CONCAT44") (argument_list "(uVar24,uVar17)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar17") () ")"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(puVar20 + -4) = 0x19152;" (assignment_expression "*(undefined4 *)(puVar20 + -4) = 0x19152" (pointer_expression "*(undefined4 *)(puVar20 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x19152")) (; ";")) (expression_statement "FUN_0002b190();" (call_expression "FUN_0002b190()" (identifier "FUN_0002b190") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

type_1 __regparm3
function_1(char *name,type_2 type,type_3 inode,type_4 command_line_arg,char *dirname)

{
  int var_109;
  char var_40;
  type_5 _Var3;
  type_6 uVar4;
  type_7 *p_Var5;
  int var_57;
  type_8 var_52;
  type_9 *pfVar8;
  type_4 var_21;
  int var_38;
  type_2 var_56;
  char *var_46;
  size_t var_35;
  char *var_81;
  char *pcVar15;
  size_t var_36;
  type_10 *var_97;
  int *piVar18;
  type_10 *puVar19;
  char var_43;
  type_11 in_register_00000005;
  type_10 var_8;
  type_12 aVar22;
  char var_15;
  type_10 var_96;
  type_13 *var_55;
  type_13 *var_44;
  type_13 *var_49;
  type_14 uVar28;
  type_15 *var_70;
  type_16 *psVar30;
  type_16 *var_42;
  type_14 *var_9;
  type_14 uVar33;
  type_15 *var_71;
  int var_2;
  bool var_72;
  bool bVar36;
  char var_14;
  type_15 bVar38;
  type_13 var_37 [11];
  char var_39;
  type_10 *local_350;
  type_10 var_54;
  type_16 *var_41;
  type_10 local_344;
  type_10 local_340;
  type_2 var_17;
  type_10 *local_338;
  type_10 *local_334;
  type_9 *local_330;
  type_16 linkstats;
  char b [21];
  char buf [652];
  
  bVar38 = 0;
  local_338 = (type_10 *)name;
  local_344 = var_1(in_register_00000005,command_line_arg);
  var_17 = type;
  var_41 = (type_16 *)inode;
  var_109 = *(int *)(var_2 + 0x14);
  if (var_3 == var_4) {
    if (((int)((type_17)var_3 * 0x110) < 0) ||
       ((int)((type_17)var_3 * 0x110 >> 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
      var_5();
    }
    var_7 = (type_9 *)var_6(var_7,var_3 * 0x110);
    var_4 = var_4 << 1;
  }
  var_44 = var_37;
  var_55 = var_37;
  var_49 = var_37;
  local_330 = var_7 + var_3;
  var_9 = (type_14 *)((type_10)&local_330->linkname & 0xfffffffc);
  local_330->name = (char *)0x0;
  *(type_14 *)&local_330->has_capability = 0;
  var_8 = (type_10)((int)local_330 + (0x84 - (int)var_9)) >> 2;
  for (; var_8 != 0; var_8 = var_8 - 1) {
    *var_9 = 0;
    var_9 = var_9 + (type_10)bVar38 * -2 + 1;
  }
  *(type_14 *)&(local_330->type_16).st_ino = 0;
  *(type_14 *)((int)&(local_330->type_16).st_ino + 4) = 0;
  var_72 = var_10 == false;
  local_330->quoted = -1;
  local_330->type_2 = var_17;
  if ((var_72) && (var_11 != false)) {
    var_21 = var_12((char *)local_338);
    local_330->quoted = (type_10)var_21;
    if (var_21) {
      var_10 = true;
    }
  }
  var_54 = var_1(var_54._1_3_,var_13);
  if ((char)local_344 == '\0') {
    if (var_13 != false) {
      var_14 = (char)*local_338;
      if (var_14 == '/') {
        local_334 = local_338;
        var_44 = var_37;
      }
      else {
        var_15 = (char)var_41->st_dev;
        local_334 = local_338;
        var_44 = var_37;
        if (var_15 != '\0') goto LAB_00018b15;
      }
      goto LAB_0001896e;
    }
    if ((var_16 != false) ||
       (((var_17 == var_18 && (var_19 != false)) &&
        ((var_21 = var_20(C_OTHER_WRITABLE), var_21 ||
         ((var_21 = var_20(C_STICKY), var_21 ||
          (var_21 = var_20(C_STICKY_OTHER_WRITABLE), var_21)))))))) {
LAB_00018410:
      var_14 = (char)*local_338;
      if ((var_14 != '/') && (var_15 = (char)var_41->st_dev, var_15 != '\0')) goto LAB_00018b15;
      var_41 = &local_330->type_16;
      if ((var_22 < var_23) || (var_22 < var_24)) {
        local_334 = local_338;
        var_49 = var_37;
      }
      else {
        local_334 = local_338;
        if (var_22 == var_24) goto LAB_00018210;
      }
      goto LAB_00018470;
    }
    if (var_25 != false) {
      if ((var_17 == var_26) || (var_17 == var_27)) {
LAB_00018f48:
        if ((var_22 != var_24) &&
           (((var_28 == false && (var_29 == false)) &&
            (var_25 == false)))) {
          if (var_30 == false) goto LAB_00018fd0;
          if (var_17 != var_27) goto LAB_000183a9;
        }
      }
      goto LAB_00018410;
    }
    if (var_30 == false) {
LAB_00018fd0:
      uVar28 = 0;
      uVar33 = 0;
    }
    else {
      if ((var_17 == var_26) || (var_17 == var_27)) goto LAB_00018f48;
      if (var_30 == false) goto LAB_00018fd0;
LAB_000183a9:
      uVar28 = 0;
      uVar33 = 0;
      var_44 = var_37;
      if ((var_17 == var_31) &&
         ((var_32 == var_33 ||
          ((var_44 = var_37, var_19 != false &&
           (((var_21 = var_20(C_EXEC), var_21 || (var_21 = var_20(C_SETUID), var_21)) ||
            ((var_21 = var_20(C_SETGID), var_21 ||
             (var_21 = var_20(C_CAP), var_44 = var_37, var_21)))))))))) goto LAB_00018410;
    }
  }
  else {
    var_14 = (char)*local_338;
    local_334 = local_338;
    var_44 = var_37;
    if ((var_14 != '/') && (var_15 = (char)var_41->st_dev, var_44 = var_37, var_15 != '\0')
       ) {
LAB_00018b15:
      local_350 = (type_10 *)var_1(local_350._1_3_,var_14);
      var_39 = var_15;
      var_35 = var_34((char *)local_338);
      psVar30 = var_41;
      var_36 = var_34((char *)var_41);
      var_15 = var_39;
      var_14 = *(char *)((int)&psVar30->st_dev + 1);
      var_43 = (char)local_350;
      var_38 = -(var_35 + 0x1d + var_36 & 0xfffffff0);
      var_44 = var_37 + var_38;
      local_334 = (type_10 *)((int)&local_350 + var_38);
      if ((var_39 != '.') || (local_350 = local_334, var_14 != '\0')) {
        var_39 = var_43;
        psVar30 = var_41;
        puVar19 = local_334;
        while( true ) {
          var_40 = var_14;
          local_350 = (type_10 *)((int)puVar19 + 1);
          var_42 = (type_16 *)((int)&psVar30->st_dev + 1);
          *(char *)puVar19 = var_15;
          if (var_40 == '\0') break;
          p_Var5 = &psVar30->st_dev;
          psVar30 = var_42;
          puVar19 = local_350;
          var_14 = *(char *)((int)p_Var5 + 2);
          var_15 = var_40;
        }
        if ((var_41 < var_42) && ((char)psVar30->st_dev != '/')) {
          *(char *)local_350 = '/';
          local_350 = (type_10 *)((int)puVar19 + 2);
        }
      }
      puVar19 = local_338;
      if (var_43 != '\0') {
        do {
          var_97 = (type_10 *)((int)local_350 + 1);
          *(char *)local_350 = var_43;
          var_43 = *(char *)((int)puVar19 + 1);
          local_350 = var_97;
          puVar19 = (type_10 *)((int)puVar19 + 1);
        } while (var_43 != '\0');
      }
      *(char *)local_350 = '\0';
    }
    if ((char)var_54 != '\0') {
LAB_0001896e:
      *(type_14 *)(var_44 + -0xc) = 2;
      *(type_10 **)(var_44 + -0x10) = local_334;
      *(type_14 *)(var_44 + -0x14) = 0x1897e;
      var_46 = var_45
                          (*(char **)(var_44 + -0x10),*(type_18 *)(var_44 + -0xc));
      local_330->absolute_name = var_46;
      if (var_46 == (char *)0x0) {
        *(type_14 *)(var_44 + -8) = 5;
        *(char **)(var_44 + -0xc) = "error canonicalizing %s";
        *(type_14 *)(var_44 + -0x10) = 0;
        *(type_14 *)(var_44 + -0x14) = 0x189a5;
        var_46 = (char *)var_47();
        puVar19 = local_334;
        var_21 = (type_4)(char)local_344;
        *(type_14 *)(var_44 + -0x14) = 0x189bb;
        var_48(var_21,var_46,(char *)puVar19);
      }
    }
    var_52 = var_22;
    var_41 = &local_330->type_16;
    var_49 = var_44;
    if (var_22 < var_23) goto LAB_00018470;
    if (var_22 < var_24) {
      if ((char)local_344 == '\0') {
LAB_00018470:
        *(type_16 **)(var_49 + -8) = var_41;
        var_14 = '\0';
        *(type_10 **)(var_49 + -0xc) = local_334;
        *(type_14 *)(var_49 + -0x10) = 3;
        *(type_14 *)(var_49 + -0x14) = 0x18488;
        var_38 = var_50(*(int *)(var_49 + -0x10),*(char **)(var_49 + -0xc),
                            *(type_19 **)(var_49 + -8));
        var_44 = var_49;
        goto joined_r0x0001848d;
      }
      *(type_16 **)(var_44 + -8) = &local_330->type_16;
      *(type_10 **)(var_44 + -0xc) = local_334;
      *(type_14 *)(var_44 + -0x10) = 3;
      *(type_14 *)(var_44 + -0x14) = 0x189eb;
      var_38 = var_51(*(int *)(var_44 + -0x10),*(char **)(var_44 + -0xc),
                         *(type_19 **)(var_44 + -8));
      if (var_52 != var_23) {
        if (var_38 < 0) {
          *(type_14 *)(var_44 + -4) = 0x18f95;
          piVar18 = var_53();
          if (*piVar18 != 2) goto LAB_00018f9e;
        }
        else {
          var_54 = (local_330->type_16).st_mode;
          if ((var_54 & 0xf000) == 0x4000) goto LAB_00018a1e;
        }
        goto LAB_00018470;
      }
LAB_00018a1e:
      if (var_38 != 0) {
LAB_00018f9e:
        uVar28 = 0;
        uVar33 = 0;
        *(type_14 *)(var_44 + -8) = 5;
        *(char **)(var_44 + -0xc) = "cannot access %s";
        *(type_14 *)(var_44 + -0x10) = 0;
        *(type_14 *)(var_44 + -0x14) = 0x18fb5;
        var_46 = (char *)var_47();
        puVar19 = local_334;
        *(type_14 *)(var_44 + -0x14) = 0x18fc7;
        var_48(true,var_46,(char *)puVar19);
        goto LAB_0001831b;
      }
      var_14 = (char)local_344;
    }
    else {
      var_55 = var_44;
      if (var_22 != var_24) goto LAB_00018470;
LAB_00018210:
      *(type_16 **)(var_55 + -8) = var_41;
      var_14 = '\x01';
      *(type_10 **)(var_55 + -0xc) = local_334;
      *(type_14 *)(var_55 + -0x10) = 3;
      *(type_14 *)(var_55 + -0x14) = 0x1822b;
      var_38 = var_51(*(int *)(var_55 + -0x10),*(char **)(var_55 + -0xc),
                         *(type_19 **)(var_55 + -8));
      var_44 = var_55;
joined_r0x0001848d:
      if (var_38 != 0) {
        uVar28 = 0;
        uVar33 = 0;
        *(type_14 *)(var_44 + -8) = 5;
        *(char **)(var_44 + -0xc) = "cannot access %s";
        *(type_14 *)(var_44 + -0x10) = 0;
        *(type_14 *)(var_44 + -0x14) = 0x184aa;
        var_46 = (char *)var_47();
        puVar19 = local_334;
        var_21 = (type_4)(char)local_344;
        *(type_14 *)(var_44 + -0x14) = 0x184be;
        var_48(var_21,var_46,(char *)puVar19);
        if ((char)local_344 != '\0') goto LAB_0001831b;
        goto LAB_000182fb;
      }
    }
    local_330->stat_ok = true;
    if (((var_17 == var_31) ||
        (var_17 = (local_330->type_16).st_mode, (var_17 & 0xf000) == 0x8000)) &&
       (var_19 != false)) {
      *(type_14 *)(var_44 + -4) = 0x188e7;
      var_21 = var_20(C_CAP);
      if (var_21) {
        var_38 = (int)(local_330->type_16).st_dev;
        var_17 = *(type_2 *)((int)&(local_330->type_16).st_dev + 4);
        *(type_14 *)(var_44 + -4) = 0x18906;
        piVar18 = var_53();
        var_56 = DAT_0003b39c;
        var_57 = unsupported_device_10505;
        *piVar18 = 0x5f;
        if (var_17 != var_56 || var_57 != var_38) {
          DAT_0003b39c = var_17;
          unsupported_device_10505 = var_38;
        }
        local_330->has_capability = false;
      }
    }
    pfVar8 = local_330;
    if ((var_58 == var_59) || (var_60 != false)) {
      if (*(int *)((int)&(local_330->type_16).st_dev + 4) == var_61 &&
          (int)(local_330->type_16).st_dev == var_62) {
        *(type_14 *)(var_44 + -4) = 0x18eca;
        piVar18 = var_53();
        *piVar18 = 0x5f;
        pfVar8->scontext = UNKNOWN_SECURITY_CONTEXT;
LAB_00018ee0:
        if (var_58 != var_59) {
          local_330->type_12 = ACL_T_NONE;
          goto LAB_00018287;
        }
        var_14 = false;
LAB_00018ca7:
        if (*(int *)((int)&(local_330->type_16).st_dev + 4) == var_63 &&
            (int)(local_330->type_16).st_dev == var_64) {
          *piVar18 = 0x5f;
          var_8 = 0;
LAB_0001900a:
          aVar22 = ACL_T_LSM_CONTEXT_ONLY;
          if ((bool)var_14 == false) {
            aVar22 = ACL_T_NONE;
            var_14 = any_has_acl;
          }
        }
        else {
          *piVar18 = 0;
          *(type_16 **)(var_44 + -0xc) = var_41;
          *(type_10 **)(var_44 + -0x10) = local_334;
          *(type_14 *)(var_44 + -0x14) = 0x18ce1;
          var_8 = var_65(*(char **)(var_44 + -0x10),*(type_16 **)(var_44 + -0xc));
          if ((int)var_8 < 1) {
            var_8 = var_8 >> 0x1f;
            if (((*piVar18 - 0x16U & 0xffffffef) == 0) || (*piVar18 == 0x5f)) {
              var_64 = (int)(local_330->type_16).st_dev;
              var_63 = *(int *)((int)&(local_330->type_16).st_dev + 4);
            }
            goto LAB_0001900a;
          }
          var_8 = 0;
          aVar22 = ACL_T_YES;
          var_14 = '\x01';
        }
        any_has_acl = (type_4)var_14;
        local_330->type_12 = aVar22;
        if (var_8 != 0) {
LAB_00018ac2:
          *(type_10 **)(var_44 + -8) = local_334;
          *(type_14 *)(var_44 + -0xc) = 3;
          *(type_14 *)(var_44 + -0x10) = 0;
          *(type_14 *)(var_44 + -0x14) = 0x18ad4;
          var_46 = var_66
                              (*(int *)(var_44 + -0x10),*(type_20 *)(var_44 + -0xc),
                               *(char **)(var_44 + -8));
          *(type_14 *)(var_44 + -0x14) = 0x18adb;
          piVar18 = var_53();
          *(char **)(var_44 + -0x14) = var_46;
          *(type_21 **)(var_44 + -0x18) = &DAT_0002fff0;
          *(int *)(var_44 + -0x1c) = *piVar18;
          *(type_14 *)(var_44 + -0x20) = 0;
          *(type_14 *)(var_44 + -0x24) = 0x18aec;
          var_67();
        }
      }
      else {
        if (var_14 != '\0') {
          *(char ***)(var_44 + -0xc) = &local_330->scontext;
          *(type_10 **)(var_44 + -0x10) = local_334;
          *(type_14 *)(var_44 + -0x14) = 0x18732;
          var_38 = var_68(*(char **)(var_44 + -0x10),
                                  *(type_22 **)(var_44 + -0xc));
          if (-1 < var_38) goto LAB_0001873d;
LAB_00018a52:
          *(type_14 *)(var_44 + -4) = 0x18a57;
          piVar18 = var_53();
          var_38 = *piVar18;
          var_72 = var_38 == 0x5f;
          var_17 = var_1(var_17._1_3_,var_72);
          if (((var_38 - 0x16U & 0xffffffef) == 0) || (var_72)) {
            var_61 = *(int *)((int)&(local_330->type_16).st_dev + 4);
            var_62 = (int)(local_330->type_16).st_dev;
          }
          local_330->scontext = UNKNOWN_SECURITY_CONTEXT;
          if ((var_38 == 0x3d) || (var_72)) goto LAB_00018ee0;
          local_330->type_12 = ACL_T_NONE;
          goto LAB_00018ac2;
        }
        *(char ***)(var_44 + -0xc) = &local_330->scontext;
        *(type_10 **)(var_44 + -0x10) = local_334;
        *(type_14 *)(var_44 + -0x14) = 0x18a47;
        var_38 = var_69(*(char **)(var_44 + -0x10),
                                 *(type_22 **)(var_44 + -0xc));
        if (var_38 < 0) goto LAB_00018a52;
LAB_0001873d:
        bVar36 = var_38 == 0;
        var_72 = false;
        var_38 = 10;
        var_70 = (type_15 *)"unlabeled";
        var_71 = (type_15 *)local_330->scontext;
        do {
          if (var_38 == 0) break;
          var_38 = var_38 + -1;
          var_72 = *var_70 < *var_71;
          bVar36 = *var_70 == *var_71;
          var_70 = var_70 + (type_10)bVar38 * -2 + 1;
          var_71 = var_71 + (type_10)bVar38 * -2 + 1;
        } while (bVar36);
        var_14 = (!var_72 && !bVar36) != var_72;
        if (var_58 == var_59) {
          *(type_14 *)(var_44 + -4) = 0x18ca5;
          piVar18 = var_53();
          goto LAB_00018ca7;
        }
        if ((!var_72 && !bVar36) == var_72) {
          local_330->type_12 = ACL_T_NONE;
          goto LAB_00018287;
        }
        local_330->type_12 = ACL_T_LSM_CONTEXT_ONLY;
        any_has_acl = true;
      }
      var_17 = (local_330->type_16).st_mode;
      var_56 = var_17 & 0xf000;
      if (var_56 != 0xa000) goto LAB_000182a0;
      if (var_58 != var_59) goto LAB_00018da0;
LAB_000187b9:
      pfVar8 = local_330;
      *(int *)(var_44 + -0xc) = (int)(local_330->type_16).st_size;
      *(type_10 **)(var_44 + -0x10) = local_334;
      *(type_14 *)(var_44 + -0x14) = 0x187d0;
      var_46 = var_73(*(char **)(var_44 + -0x10),*(size_t *)(var_44 + -0xc));
      pfVar8->linkname = var_46;
      if (var_46 == (char *)0x0) {
        *(type_14 *)(var_44 + -8) = 5;
        *(char **)(var_44 + -0xc) = "cannot read symbolic link %s";
        *(type_14 *)(var_44 + -0x10) = 0;
        *(type_14 *)(var_44 + -0x14) = 0x19043;
        var_46 = (char *)var_47();
        puVar19 = local_334;
        var_21 = (type_4)(char)local_344;
        *(type_14 *)(var_44 + -0x14) = 0x19059;
        var_48(var_21,var_46,(char *)puVar19);
        var_46 = local_330->linkname;
        if (var_46 != (char *)0x0) goto LAB_000187e0;
LAB_0001906d:
        var_81 = (char *)0x0;
      }
      else {
LAB_000187e0:
        if (*var_46 == '/') {
LAB_00018f18:
          *(char **)(var_44 + -0x10) = var_46;
          *(type_14 *)(var_44 + -0x14) = 0x18f21;
          var_81 = var_74(*(char **)(var_44 + -0x10));
        }
        else {
          *(type_10 **)(var_44 + -0x10) = local_334;
          *(type_14 *)(var_44 + -0x14) = 0x187f7;
          var_56 = var_75(*(char **)(var_44 + -0x10));
          if (var_56 == var_27) goto LAB_00018f18;
          var_17 = var_56;
          *(char **)(var_44 + -0x10) = var_46;
          *(type_14 *)(var_44 + -0x14) = 0x18811;
          var_35 = var_34(*(char **)(var_44 + -0x10));
          *(type_2 *)(var_44 + -0x10) = var_17 + var_76 + var_35;
          *(type_14 *)(var_44 + -0x14) = 0x18823;
          var_81 = (char *)var_77(*(size_t *)(var_44 + -0x10));
          var_56 = var_17;
          if (*(char *)((int)local_334 + (var_17 - var_78)) != '/') {
            var_56 = var_17 + var_78;
          }
          *(type_2 *)(var_44 + -8) = var_56;
          *(type_10 **)(var_44 + -0xc) = local_334;
          *(char **)(var_44 + -0x10) = var_81;
          *(type_14 *)(var_44 + -0x14) = 0x1884e;
          pcVar15 = var_79(*(char **)(var_44 + -0x10),*(char **)(var_44 + -0xc),
                            *(size_t *)(var_44 + -8));
          *(char **)(var_44 + -0xc) = var_46;
          *(char **)(var_44 + -0x10) = pcVar15;
          *(type_14 *)(var_44 + -0x14) = 0x18857;
          var_80(*(char **)(var_44 + -0x10),*(char **)(var_44 + -0xc));
        }
        pfVar8 = local_330;
        if (var_81 == (char *)0x0) goto LAB_0001906d;
        if (local_330->quoted == 0) {
          var_46 = local_330->linkname;
          *(type_14 *)(var_44 + -4) = 0x1911a;
          var_21 = var_12(var_46);
          if (var_21) {
            pfVar8->quoted = -1;
          }
        }
        if ((var_82 < var_32) || (var_29 != false)) {
          *(type_16 **)(var_44 + -8) = &linkstats;
          *(char **)(var_44 + -0xc) = var_81;
          *(type_14 *)(var_44 + -0x10) = 3;
          *(type_14 *)(var_44 + -0x14) = 0x18d4a;
          var_38 = var_51(*(int *)(var_44 + -0x10),*(char **)(var_44 + -0xc),
                             *(type_19 **)(var_44 + -8));
          if (var_38 == 0) {
            local_330->linkok = true;
            if ((((char)local_344 == '\0') || (var_58 == var_59)) ||
               ((linkstats.st_mode & 0xf000) != 0x4000)) {
              local_330->linkmode = linkstats.st_mode;
            }
          }
        }
      }
      *(char **)(var_44 + -0x10) = var_81;
      *(type_14 *)(var_44 + -0x14) = 0x18899;
      var_83(*(void **)(var_44 + -0x10));
      local_334 = (type_10 *)(local_330->type_16).st_mode;
      var_56 = (type_10)local_334 & 0xf000;
      if (var_56 != 0xa000) goto LAB_000182a0;
LAB_000188bb:
      local_330->type_2 = var_26;
    }
    else {
LAB_00018287:
      var_17 = (local_330->type_16).st_mode;
      var_56 = var_17 & 0xf000;
      if (var_56 == 0xa000) {
LAB_00018da0:
        if (var_29 != false) goto LAB_000187b9;
        goto LAB_000188bb;
      }
LAB_000182a0:
      if (var_56 == 0x4000) {
        if (((char)local_344 == '\0') || (var_84 != false)) {
          local_330->type_2 = var_18;
        }
        else {
          local_330->type_2 = arg_directory;
        }
      }
      else {
        local_330->type_2 = var_31;
      }
    }
    uVar28 = (type_14)(local_330->type_16).st_blocks;
    uVar33 = *(type_14 *)((int)&(local_330->type_16).st_blocks + 4);
    if ((var_58 == var_59) || (var_85 != false)) {
      *(type_14 *)(var_44 + -4) = output_block_size._4_4_;
      *(type_14 *)(var_44 + -8) = (type_14)output_block_size;
      *(type_14 *)(var_44 + -0xc) = 0;
      *(type_14 *)(var_44 + -0x10) = 0x200;
      *(int *)(var_44 + -0x14) = human_output_opts;
      *(char **)(var_44 + -0x18) = buf;
      *(type_14 *)(var_44 + -0x1c) = uVar33;
      *(type_14 *)(var_44 + -0x20) = uVar28;
      local_334 = (type_10 *)buf;
      *(type_14 *)(var_44 + -0x24) = 0x18505;
      var_46 = var_86(*(type_1 *)(var_44 + -0x20),*(char **)(var_44 + -0x18),
                               *(int *)(var_44 + -0x14),*(type_1 *)(var_44 + -0x10),
                               *(type_1 *)(var_44 + -8));
      *(type_14 *)(var_44 + -0xc) = 0;
      *(char **)(var_44 + -0x10) = var_46;
      *(type_14 *)(var_44 + -0x14) = 0x18510;
      var_38 = var_87(*(char **)(var_44 + -0x10),*(int *)(var_44 + -0xc));
      if (var_88 < var_38) {
        var_88 = var_38;
      }
      if (var_58 != var_59) goto LAB_000182df;
      if (var_89 != false) {
        uVar4 = (local_330->type_16).st_uid;
        *(type_14 *)(var_44 + -4) = 0x18eae;
        var_38 = var_90(uVar4);
        if (var_91 < var_38) {
          var_91 = var_38;
        }
      }
      if (var_92 != false) {
        var_8 = (local_330->type_16).st_gid;
        if (var_93 == false) {
          local_344 = var_8;
          *(type_10 *)(var_44 + -0x10) = var_8;
          *(type_14 *)(var_44 + -0x14) = 0x190df;
          var_46 = var_94(*(type_23 *)(var_44 + -0x10));
          var_8 = local_344;
          if (var_46 == (char *)0x0) goto LAB_00018e2e;
          *(type_14 *)(var_44 + -0xc) = 0;
          *(char **)(var_44 + -0x10) = var_46;
          *(type_14 *)(var_44 + -0x14) = 0x190fb;
          var_46 = (char *)var_87(*(char **)(var_44 + -0x10),*(int *)(var_44 + -0xc));
          if ((int)var_46 < 0) {
            var_46 = (char *)0x0;
          }
        }
        else {
LAB_00018e2e:
          *(type_10 *)(var_44 + -0x10) = var_8;
          *(type_21 **)(var_44 + -0x14) = &DAT_0002d97b;
          *(type_14 *)(var_44 + -0x18) = 0xb;
          *(type_14 *)(var_44 + -0x1c) = 1;
          *(type_10 **)(var_44 + -0x20) = local_334;
          *(type_14 *)(var_44 + -0x24) = 0x18e48;
          var_95();
          puVar19 = local_334;
          do {
            var_97 = puVar19;
            var_96 = *var_97 + 0xfefefeff & ~*var_97;
            var_8 = var_96 & 0x80808080;
            puVar19 = var_97 + 1;
          } while (var_8 == 0);
          var_72 = (var_96 & 0x8080) == 0;
          if (var_72) {
            var_8 = var_8 >> 0x10;
          }
          if (var_72) {
            puVar19 = (type_10 *)((int)var_97 + 6);
          }
          var_46 = (char *)((int)puVar19 +
                            ((-3 - (type_10)var_98((type_15)var_8,(type_15)var_8)) - (int)local_334));
        }
        if (var_99 < (int)var_46) {
          var_99 = (int)var_46;
        }
      }
      if (var_100 != false) {
        uVar4 = (local_330->type_16).st_uid;
        *(type_14 *)(var_44 + -4) = 0x18dfe;
        var_38 = var_90(uVar4);
        if (var_101 < var_38) {
          var_101 = var_38;
        }
      }
      if (var_60 != false) goto LAB_0001855f;
LAB_0001857f:
      if (var_58 != var_59) goto LAB_000182ec;
      *(char **)(var_44 + -8) = b;
      _Var3 = (local_330->type_16).st_nlink;
      *(type_14 *)(var_44 + -0xc) = 0;
      *(type_5 *)(var_44 + -0x10) = _Var3;
      *(type_14 *)(var_44 + -0x14) = 0x185a9;
      var_46 = var_102(*(type_1 *)(var_44 + -0x10),*(char **)(var_44 + -8));
      *(char **)(var_44 + -0x10) = var_46;
      *(type_14 *)(var_44 + -0x14) = 0x185b1;
      var_35 = var_34(*(char **)(var_44 + -0x10));
      if (var_103 < (int)var_35) {
        var_103 = var_35;
      }
      local_334 = (type_10 *)(local_330->type_16).st_mode;
      if (((type_10)local_334 & 0xb000) == 0x2000) {
        var_8 = *(type_10 *)((int)&(local_330->type_16).st_rdev + 4);
        var_96 = (type_10)(local_330->type_16).st_rdev;
        *(char **)(var_44 + -8) = buf;
        local_344 = var_96;
        local_340 = var_8;
        local_334 = (type_10 *)buf;
        *(type_14 *)(var_44 + -0xc) = 0;
        *(type_10 *)(var_44 + -0x10) = var_96 >> 8 & 0xfff | var_8 & 0xfffff000;
        *(type_14 *)(var_44 + -0x14) = 0x18623;
        var_46 = var_102(*(type_1 *)(var_44 + -0x10),*(char **)(var_44 + -8));
        *(char **)(var_44 + -0x10) = var_46;
        *(type_14 *)(var_44 + -0x14) = 0x1862b;
        var_35 = var_34(*(char **)(var_44 + -0x10));
        if (var_104 < (int)var_35) {
          var_104 = var_35;
        }
        var_38 = *(int *)((int)&(local_330->type_16).st_rdev + 4);
        var_8 = (type_10)(local_330->type_16).st_rdev;
        *(type_10 **)(var_44 + -8) = local_334;
        *(type_14 *)(var_44 + -0xc) = 0;
        *(type_10 *)(var_44 + -0x10) =
             (type_10)(uint3)((uint3)(var_8 >> 0x14) | (uint3)((type_10)(var_38 << 0x14) >> 8)) << 8 |
             var_8 & 0xff;
        *(type_14 *)(var_44 + -0x14) = 0x18665;
        var_46 = var_102(*(type_1 *)(var_44 + -0x10),*(char **)(var_44 + -8));
        *(char **)(var_44 + -0x10) = var_46;
        *(type_14 *)(var_44 + -0x14) = 0x1866d;
        var_35 = var_34(*(char **)(var_44 + -0x10));
        if (var_105 < (int)var_35) {
          var_105 = var_35;
        }
        var_38 = var_105 + 2 + var_104;
        if (var_38 <= var_106) goto LAB_000182ec;
      }
      else {
        *(type_14 *)(var_44 + -4) = file_output_block_size._4_4_;
        *(type_14 *)(var_44 + -8) = (type_14)file_output_block_size;
        *(type_14 *)(var_44 + -0xc) = 0;
        *(type_14 *)(var_44 + -0x10) = 1;
        *(int *)(var_44 + -0x14) = file_human_output_opts;
        *(char **)(var_44 + -0x18) = buf;
        pfVar8 = local_330;
        *(type_14 *)(var_44 + -0x1c) = *(type_14 *)((int)&(local_330->type_16).st_size + 4);
        *(int *)(var_44 + -0x20) = (int)(pfVar8->type_16).st_size;
        *(type_14 *)(var_44 + -0x24) = 0x18c7e;
        var_46 = var_86(*(type_1 *)(var_44 + -0x20),*(char **)(var_44 + -0x18),
                                 *(int *)(var_44 + -0x14),*(type_1 *)(var_44 + -0x10),
                                 *(type_1 *)(var_44 + -8));
        *(type_14 *)(var_44 + -0xc) = 0;
        *(char **)(var_44 + -0x10) = var_46;
        *(type_14 *)(var_44 + -0x14) = 0x18c89;
        var_38 = var_87(*(char **)(var_44 + -0x10),*(int *)(var_44 + -0xc));
        if (var_38 <= var_106) goto LAB_000182ec;
      }
    }
    else {
LAB_000182df:
      if (var_60 != false) {
LAB_0001855f:
        *(char **)(var_44 + -0x10) = local_330->scontext;
        *(type_14 *)(var_44 + -0x14) = 0x18570;
        var_35 = var_34(*(char **)(var_44 + -0x10));
        if (var_107 < (int)var_35) {
          var_107 = var_35;
        }
        goto LAB_0001857f;
      }
LAB_000182ec:
      var_38 = var_106;
    }
    var_106 = var_38;
    if (var_25 != false) {
      *(char **)(var_44 + -8) = buf;
      pfVar8 = local_330;
      *(type_14 *)(var_44 + -0xc) = *(type_14 *)((int)&(local_330->type_16).st_ino + 4);
      *(int *)(var_44 + -0x10) = (int)(pfVar8->type_16).st_ino;
      *(type_14 *)(var_44 + -0x14) = 0x186cb;
      var_46 = var_102(*(type_1 *)(var_44 + -0x10),*(char **)(var_44 + -8));
      *(char **)(var_44 + -0x10) = var_46;
      *(type_14 *)(var_44 + -0x14) = 0x186d3;
      var_35 = var_34(*(char **)(var_44 + -0x10));
      if (var_108 < (int)var_35) {
        var_108 = var_35;
      }
    }
  }
LAB_000182fb:
  *(type_10 **)(var_44 + -0x10) = local_338;
  *(type_14 *)(var_44 + -0x14) = 0x18309;
  var_46 = var_74(*(char **)(var_44 + -0x10));
  var_3 = var_3 + 1;
  local_330->name = var_46;
LAB_0001831b:
  if (var_109 == *(int *)(var_2 + 0x14)) {
    return var_110(uVar33,uVar28);
  }
                    /* WARNING: Subroutine does not return */
  *(type_14 *)(var_44 + -4) = 0x19152;
  var_111();
}


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

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

undefined8 __regparm3 MASKED(uint *param_1,uint param_2,uint param_3,char *param_4)

{
  char cVar1;
  char cVar2;
  char cVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  undefined4 uVar7;
  size_t sVar8;
  char *pcVar9;
  size_t sVar10;
  uint *puVar11;
  int *piVar12;
  int iVar13;
  uint *puVar14;
  char *pcVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *pbVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  byte *pbVar25;
  int in_GS_OFFSET;
  bool bVar26;
  bool bVar27;
  byte bVar28;
  undefined1 auStack_35c [11];
  char local_351;
  uint *local_350;
  uint local_34c;
  char *local_348;
  uint local_344;
  uint local_340;
  uint local_33c;
  uint *local_338;
  uint *local_334;
  undefined4 *local_330;
  undefined1 local_324 [16];
  uint local_314;
  undefined1 local_2c1 [21];
  uint local_2ac [163];
  int local_20;
  undefined4 uStack_14;
  
  bVar28 = 0;
  uStack_14 = 0x1809b;
  local_338 = param_1;
  local_344 = param_3;
  local_33c = param_2;
  local_348 = param_4;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_0003c358 == DAT_0003c35c) {
    if (((int)((ulonglong)DAT_0003c358 * 0x110) < 0) ||
       ((int)((ulonglong)DAT_0003c358 * 0x110 >> 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_00024230();
    }
    DAT_0003c360 = FUN_00023fc0(DAT_0003c360,DAT_0003c358 * 0x110);
    DAT_0003c35c = DAT_0003c35c << 1;
  }
  puVar20 = auStack_35c;
  puVar19 = auStack_35c;
  puVar21 = auStack_35c;
  local_330 = (undefined4 *)(DAT_0003c360 + DAT_0003c358 * 0x88);
  *local_330 = 0;
  local_330[0x20] = 0;
  puVar23 = (undefined4 *)((uint)(local_330 + 1) & 0xfffffffc);
  for (uVar16 = (uint)((int)local_330 + (0x84 - (int)((uint)(local_330 + 1) & 0xfffffffc))) >> 2;
      uVar16 != 0; uVar16 = uVar16 - 1) {
    *puVar23 = 0;
    puVar23 = puVar23 + (uint)bVar28 * -2 + 1;
  }
  local_330[0x19] = 0;
  local_330[0x1a] = 0;
  bVar26 = DAT_0003c355 == '\0';
  local_330[0x21] = 0xffffffff;
  local_330[0x1b] = local_33c;
  if ((bVar26) && (DAT_0003c354 != '\0')) {
    bVar4 = FUN_00014c00();
    local_330[0x21] = (uint)bVar4;
    if (bVar4 != 0) {
      DAT_0003c355 = '\x01';
    }
  }
  local_34c = CONCAT31(local_34c._1_3_,DAT_0003c2e1);
  if ((char)local_344 == '\0') {
    if (DAT_0003c2e1 != '\0') {
      cVar5 = (char)*local_338;
      if (cVar5 == '/') {
        local_334 = local_338;
        puVar20 = auStack_35c;
      }
      else {
        cVar3 = *local_348;
        local_334 = local_338;
        puVar20 = auStack_35c;
        if (cVar3 != '\0') goto LAB_00018b15;
      }
      goto LAB_0001896e;
    }
    if ((DAT_0003c2a1 != '\0') ||
       (((local_33c == 3 && (DAT_0003c2e2 != '\0')) &&
        ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||
         ((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')))))))) {
LAB_00018410:
      cVar5 = (char)*local_338;
      if ((cVar5 != '/') && (cVar3 = *local_348, cVar3 != '\0')) goto LAB_00018b15;
      local_348 = (char *)(local_330 + 3);
      if ((DAT_0003c2d0 < 3) || (DAT_0003c2d0 < 5)) {
        local_334 = local_338;
        puVar21 = auStack_35c;
      }
      else {
        local_334 = local_338;
        if (DAT_0003c2d0 == 5) goto LAB_00018210;
      }
      goto LAB_00018470;
    }
    if (DAT_0003c2d4 != '\0') {
      if ((local_33c == 6) || (local_33c == 0)) {
LAB_00018f48:
        if ((DAT_0003c2d0 != 5) &&
           (((DAT_0003c348 == '\0' && (DAT_0003c2d5 == '\0')) && (DAT_0003c2d4 == '\0')))) {
          if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;
          if (local_33c != 0) goto LAB_000183a9;
        }
      }
      goto LAB_00018410;
    }
    if (DAT_0003c2a0 == '\0') {
LAB_00018fd0:
      uVar17 = 0;
      uVar24 = 0;
    }
    else {
      if ((local_33c == 6) || (local_33c == 0)) goto LAB_00018f48;
      if (DAT_0003c2a0 == '\0') goto LAB_00018fd0;
LAB_000183a9:
      uVar17 = 0;
      uVar24 = 0;
      puVar20 = auStack_35c;
      if ((local_33c == 5) &&
         ((DAT_0003c2e4 == 3 ||
          ((puVar20 = auStack_35c, DAT_0003c2e2 != '\0' &&
           (((cVar5 = FUN_000146d0(), cVar5 != '\0' || (cVar5 = FUN_000146d0(), cVar5 != '\0')) ||
            ((cVar5 = FUN_000146d0(), cVar5 != '\0' ||
             (cVar5 = FUN_000146d0(), puVar20 = auStack_35c, cVar5 != '\0'))))))))))
      goto LAB_00018410;
    }
  }
  else {
    cVar5 = (char)*local_338;
    local_334 = local_338;
    puVar20 = auStack_35c;
    if ((cVar5 != '/') && (cVar3 = *local_348, puVar20 = auStack_35c, cVar3 != '\0')) {
LAB_00018b15:
      local_350 = (uint *)CONCAT31(local_350._1_3_,cVar5);
      local_351 = cVar3;
      sVar8 = strlen((char *)local_338);
      pcVar15 = local_348;
      sVar10 = strlen(local_348);
      cVar5 = local_351;
      cVar3 = (char)local_350;
      iVar6 = -(sVar8 + 0x1d + sVar10 & 0xfffffff0);
      puVar20 = auStack_35c + iVar6;
      local_334 = (uint *)((int)&local_350 + iVar6);
      if ((local_351 != '.') || (local_350 = local_334, pcVar15[1] != '\0')) {
        local_351 = cVar3;
        pcVar9 = local_348;
        puVar14 = local_334;
        cVar2 = pcVar15[1];
        while( true ) {
          cVar1 = cVar2;
          local_350 = (uint *)((int)puVar14 + 1);
          *(char *)puVar14 = cVar5;
          if (cVar1 == '\0') break;
          pcVar15 = pcVar9 + 2;
          pcVar9 = pcVar9 + 1;
          puVar14 = local_350;
          cVar2 = *pcVar15;
          cVar5 = cVar1;
        }
        if ((local_348 < pcVar9 + 1) && (*pcVar9 != '/')) {
          *(char *)local_350 = '/';
          local_350 = (uint *)((int)puVar14 + 2);
        }
      }
      puVar14 = local_338;
      if (cVar3 != '\0') {
        do {
          puVar11 = (uint *)((int)local_350 + 1);
          *(char *)local_350 = cVar3;
          cVar3 = *(char *)((int)puVar14 + 1);
          local_350 = puVar11;
          puVar14 = (uint *)((int)puVar14 + 1);
        } while (cVar3 != '\0');
      }
      *(char *)local_350 = '\0';
    }
    if ((char)local_34c != '\0') {
LAB_0001896e:
      *(undefined4 *)(puVar20 + -0xc) = 2;
      *(uint **)(puVar20 + -0x10) = local_334;
      *(undefined4 *)(puVar20 + -0x14) = 0x1897e;
      iVar6 = FUN_0001b7b0();
      local_330[2] = iVar6;
      if (iVar6 == 0) {
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "error canonicalizing %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x189a5;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x189bb;
        FUN_00015440();
      }
    }
    uVar16 = DAT_0003c2d0;
    local_348 = (char *)(local_330 + 3);
    puVar21 = puVar20;
    if (DAT_0003c2d0 < 3) goto LAB_00018470;
    if (DAT_0003c2d0 < 5) {
      if ((char)local_344 == '\0') {
LAB_00018470:
        *(char **)(puVar21 + -8) = local_348;
        cVar5 = '\0';
        *(uint **)(puVar21 + -0xc) = local_334;
        *(undefined4 *)(puVar21 + -0x10) = 3;
        *(undefined4 *)(puVar21 + -0x14) = 0x18488;
        iVar6 = __lxstat64(*(int *)(puVar21 + -0x10),*(char **)(puVar21 + -0xc),
                           *(stat64 **)(puVar21 + -8));
        puVar20 = puVar21;
        goto joined_r0x0001848d;
      }
      *(undefined4 **)(puVar20 + -8) = local_330 + 3;
      *(uint **)(puVar20 + -0xc) = local_334;
      *(undefined4 *)(puVar20 + -0x10) = 3;
      *(undefined4 *)(puVar20 + -0x14) = 0x189eb;
      iVar6 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                        *(stat64 **)(puVar20 + -8));
      if (uVar16 != 3) {
        if (iVar6 < 0) {
          *(undefined4 *)(puVar20 + -4) = 0x18f95;
          piVar12 = __errno_location();
          if (*piVar12 != 2) goto LAB_00018f9e;
        }
        else {
          local_34c = local_330[7];
          if ((local_330[7] & 0xf000) == 0x4000) goto LAB_00018a1e;
        }
        goto LAB_00018470;
      }
LAB_00018a1e:
      if (iVar6 != 0) {
LAB_00018f9e:
        uVar17 = 0;
        uVar24 = 0;
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x18fb5;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x18fc7;
        FUN_00015440();
        goto LAB_0001831b;
      }
      cVar5 = (char)local_344;
    }
    else {
      puVar19 = puVar20;
      if (DAT_0003c2d0 != 5) goto LAB_00018470;
LAB_00018210:
      *(char **)(puVar19 + -8) = local_348;
      cVar5 = '\x01';
      *(uint **)(puVar19 + -0xc) = local_334;
      *(undefined4 *)(puVar19 + -0x10) = 3;
      *(undefined4 *)(puVar19 + -0x14) = 0x1822b;
      iVar6 = __xstat64(*(int *)(puVar19 + -0x10),*(char **)(puVar19 + -0xc),
                        *(stat64 **)(puVar19 + -8));
      puVar20 = puVar19;
joined_r0x0001848d:
      if (iVar6 != 0) {
        uVar17 = 0;
        uVar24 = 0;
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot access %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x184aa;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x184be;
        FUN_00015440();
        if ((char)local_344 != '\0') goto LAB_0001831b;
        goto LAB_000182fb;
      }
    }
    *(undefined1 *)(local_330 + 0x1e) = 1;
    if (((local_33c == 5) || (local_33c = local_330[7], (local_33c & 0xf000) == 0x8000)) &&
       (DAT_0003c2e2 != '\0')) {
      *(undefined4 *)(puVar20 + -4) = 0x188e7;
      cVar3 = FUN_000146d0();
      if (cVar3 != '\0') {
        iVar6 = local_330[3];
        local_33c = local_330[4];
        *(undefined4 *)(puVar20 + -4) = 0x18906;
        piVar12 = __errno_location();
        uVar16 = DAT_0003b39c;
        iVar13 = DAT_0003b398;
        *piVar12 = 0x5f;
        if (local_33c != uVar16 || iVar13 != iVar6) {
          DAT_0003b39c = local_33c;
          DAT_0003b398 = iVar6;
        }
        *(undefined1 *)(local_330 + 0x20) = 0;
      }
    }
    puVar23 = local_330;
    if ((DAT_0003c308 == 0) || (DAT_0003c335 != '\0')) {
      if (local_330[4] == DAT_0003b394 && local_330[3] == DAT_0003b390) {
        *(undefined4 *)(puVar20 + -4) = 0x18eca;
        piVar12 = __errno_location();
        *piVar12 = 0x5f;
        puVar23[0x1d] = &DAT_0003b1fa;
LAB_00018ee0:
        if (DAT_0003c308 != 0) {
          local_330[0x1f] = 0;
          goto LAB_00018287;
        }
        cVar5 = false;
LAB_00018ca7:
        if (local_330[4] == DAT_0003b38c && local_330[3] == DAT_0003b388) {
          *piVar12 = 0x5f;
          uVar16 = 0;
LAB_0001900a:
          uVar17 = 1;
          if ((bool)cVar5 == false) {
            uVar17 = 0;
            cVar5 = DAT_0003c334;
          }
        }
        else {
          *piVar12 = 0;
          *(char **)(puVar20 + -0xc) = local_348;
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x18ce1;
          uVar16 = FUN_0001c190();
          if ((int)uVar16 < 1) {
            uVar16 = uVar16 >> 0x1f;
            if (((*piVar12 - 0x16U & 0xffffffef) == 0) || (*piVar12 == 0x5f)) {
              DAT_0003b388 = local_330[3];
              DAT_0003b38c = local_330[4];
            }
            goto LAB_0001900a;
          }
          uVar16 = 0;
          uVar17 = 2;
          cVar5 = '\x01';
        }
        DAT_0003c334 = cVar5;
        local_330[0x1f] = uVar17;
        if (uVar16 != 0) {
LAB_00018ac2:
          *(uint **)(puVar20 + -8) = local_334;
          *(undefined4 *)(puVar20 + -0xc) = 3;
          *(undefined4 *)(puVar20 + -0x10) = 0;
          *(undefined4 *)(puVar20 + -0x14) = 0x18ad4;
          uVar17 = FUN_000234e0();
          *(undefined4 *)(puVar20 + -0x14) = 0x18adb;
          piVar12 = __errno_location();
          *(undefined4 *)(puVar20 + -0x14) = uVar17;
          *(undefined **)(puVar20 + -0x18) = &DAT_0002fff0;
          *(int *)(puVar20 + -0x1c) = *piVar12;
          *(undefined4 *)(puVar20 + -0x20) = 0;
          *(undefined4 *)(puVar20 + -0x24) = 0x18aec;
          error();
        }
      }
      else {
        if (cVar5 != '\0') {
          *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x18732;
          iVar6 = FUN_00028250();
          if (-1 < iVar6) goto LAB_0001873d;
LAB_00018a52:
          *(undefined4 *)(puVar20 + -4) = 0x18a57;
          piVar12 = __errno_location();
          iVar6 = *piVar12;
          bVar26 = iVar6 == 0x5f;
          local_33c = CONCAT31(local_33c._1_3_,bVar26);
          if (((iVar6 - 0x16U & 0xffffffef) == 0) || (bVar26)) {
            DAT_0003b394 = local_330[4];
            DAT_0003b390 = local_330[3];
          }
          local_330[0x1d] = &DAT_0003b1fa;
          if ((iVar6 == 0x3d) || (bVar26)) goto LAB_00018ee0;
          local_330[0x1f] = 0;
          goto LAB_00018ac2;
        }
        *(undefined4 **)(puVar20 + -0xc) = local_330 + 0x1d;
        *(uint **)(puVar20 + -0x10) = local_334;
        *(undefined4 *)(puVar20 + -0x14) = 0x18a47;
        iVar6 = FUN_00028280();
        if (iVar6 < 0) goto LAB_00018a52;
LAB_0001873d:
        bVar27 = iVar6 == 0;
        bVar26 = false;
        iVar6 = 10;
        pbVar22 = (byte *)"unlabeled";
        pbVar25 = (byte *)local_330[0x1d];
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          bVar26 = *pbVar22 < *pbVar25;
          bVar27 = *pbVar22 == *pbVar25;
          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          pbVar25 = pbVar25 + (uint)bVar28 * -2 + 1;
        } while (bVar27);
        cVar5 = (!bVar26 && !bVar27) != bVar26;
        if (DAT_0003c308 == 0) {
          *(undefined4 *)(puVar20 + -4) = 0x18ca5;
          piVar12 = __errno_location();
          goto LAB_00018ca7;
        }
        if ((!bVar26 && !bVar27) == bVar26) {
          local_330[0x1f] = 0;
          goto LAB_00018287;
        }
        local_330[0x1f] = 1;
        DAT_0003c334 = '\x01';
      }
      local_33c = local_330[7];
      uVar16 = local_330[7] & 0xf000;
      if (uVar16 != 0xa000) goto LAB_000182a0;
      if (DAT_0003c308 != 0) goto LAB_00018da0;
LAB_000187b9:
      puVar23 = local_330;
      *(undefined4 *)(puVar20 + -0xc) = local_330[0xe];
      *(uint **)(puVar20 + -0x10) = local_334;
      *(undefined4 *)(puVar20 + -0x14) = 0x187d0;
      pcVar15 = (char *)FUN_0001b280();
      puVar23[1] = pcVar15;
      if (pcVar15 == (char *)0x0) {
        *(undefined4 *)(puVar20 + -8) = 5;
        *(char **)(puVar20 + -0xc) = "cannot read symbolic link %s";
        *(undefined4 *)(puVar20 + -0x10) = 0;
        *(undefined4 *)(puVar20 + -0x14) = 0x19043;
        dcgettext();
        *(undefined4 *)(puVar20 + -0x14) = 0x19059;
        FUN_00015440();
        pcVar15 = (char *)local_330[1];
        if (pcVar15 != (char *)0x0) goto LAB_000187e0;
LAB_0001906d:
        iVar6 = 0;
      }
      else {
LAB_000187e0:
        if (*pcVar15 == '/') {
LAB_00018f18:
          *(char **)(puVar20 + -0x10) = pcVar15;
          *(undefined4 *)(puVar20 + -0x14) = 0x18f21;
          iVar6 = FUN_00024200();
        }
        else {
          *(uint **)(puVar20 + -0x10) = local_334;
          *(undefined4 *)(puVar20 + -0x14) = 0x187f7;
          uVar16 = FUN_0001c010();
          if (uVar16 == 0) goto LAB_00018f18;
          local_33c = uVar16;
          *(char **)(puVar20 + -0x10) = pcVar15;
          *(undefined4 *)(puVar20 + -0x14) = 0x18811;
          sVar8 = strlen(*(char **)(puVar20 + -0x10));
          *(uint *)(puVar20 + -0x10) = local_33c + 2 + sVar8;
          *(undefined4 *)(puVar20 + -0x14) = 0x18823;
          iVar6 = FUN_00023f30();
          uVar16 = local_33c;
          if (*(char *)((int)local_334 + (local_33c - 1)) != '/') {
            uVar16 = local_33c + 1;
          }
          *(uint *)(puVar20 + -8) = uVar16;
          *(uint **)(puVar20 + -0xc) = local_334;
          *(int *)(puVar20 + -0x10) = iVar6;
          *(undefined4 *)(puVar20 + -0x14) = 0x1884e;
          pcVar9 = stpncpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                           *(size_t *)(puVar20 + -8));
          *(char **)(puVar20 + -0xc) = pcVar15;
          *(char **)(puVar20 + -0x10) = pcVar9;
          *(undefined4 *)(puVar20 + -0x14) = 0x18857;
          strcpy(*(char **)(puVar20 + -0x10),*(char **)(puVar20 + -0xc));
        }
        puVar23 = local_330;
        if (iVar6 == 0) goto LAB_0001906d;
        if (local_330[0x21] == 0) {
          *(undefined4 *)(puVar20 + -4) = 0x1911a;
          cVar5 = FUN_00014c00();
          if (cVar5 != '\0') {
            puVar23[0x21] = 0xffffffff;
          }
        }
        if ((1 < DAT_0003c2e4) || (DAT_0003c2d5 != '\0')) {
          *(undefined1 **)(puVar20 + -8) = local_324;
          *(int *)(puVar20 + -0xc) = iVar6;
          *(undefined4 *)(puVar20 + -0x10) = 3;
          *(undefined4 *)(puVar20 + -0x14) = 0x18d4a;
          iVar13 = __xstat64(*(int *)(puVar20 + -0x10),*(char **)(puVar20 + -0xc),
                             *(stat64 **)(puVar20 + -8));
          if (iVar13 == 0) {
            *(undefined1 *)((int)local_330 + 0x79) = 1;
            if ((((char)local_344 == '\0') || (DAT_0003c308 == 0)) ||
               ((local_314 & 0xf000) != 0x4000)) {
              local_330[0x1c] = local_314;
            }
          }
        }
      }
      *(int *)(puVar20 + -0x10) = iVar6;
      *(undefined4 *)(puVar20 + -0x14) = 0x18899;
      free(*(void **)(puVar20 + -0x10));
      local_334 = (uint *)local_330[7];
      uVar16 = (uint)local_330[7] & 0xf000;
      if (uVar16 != 0xa000) goto LAB_000182a0;
LAB_000188bb:
      local_330[0x1b] = 6;
    }
    else {
LAB_00018287:
      local_33c = local_330[7];
      uVar16 = local_330[7] & 0xf000;
      if (uVar16 == 0xa000) {
LAB_00018da0:
        if (DAT_0003c2d5 != '\0') goto LAB_000187b9;
        goto LAB_000188bb;
      }
LAB_000182a0:
      if (uVar16 == 0x4000) {
        if (((char)local_344 == '\0') || (DAT_0003c2cd != '\0')) {
          local_330[0x1b] = 3;
        }
        else {
          local_330[0x1b] = 9;
        }
      }
      else {
        local_330[0x1b] = 5;
      }
    }
    uVar17 = local_330[0x11];
    uVar24 = local_330[0x12];
    if ((DAT_0003c308 == 0) || (DAT_0003c2fc != '\0')) {
      *(undefined4 *)(puVar20 + -4) = DAT_0003c2f4;
      *(undefined4 *)(puVar20 + -8) = DAT_0003c2f0;
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = 0x200;
      *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2f8;
      *(uint **)(puVar20 + -0x18) = local_2ac;
      *(undefined4 *)(puVar20 + -0x1c) = uVar24;
      *(undefined4 *)(puVar20 + -0x20) = uVar17;
      local_334 = local_2ac;
      *(undefined4 *)(puVar20 + -0x24) = 0x18505;
      uVar7 = FUN_0001df30();
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x18510;
      iVar6 = FUN_0001fb50();
      if (DAT_0003c32c < iVar6) {
        DAT_0003c32c = iVar6;
      }
      if (DAT_0003c308 != 0) goto LAB_000182df;
      if (DAT_0003b1f9 != '\0') {
        *(undefined4 *)(puVar20 + -4) = 0x18eae;
        iVar6 = FUN_00018000();
        if (DAT_0003c320 < iVar6) {
          DAT_0003c320 = iVar6;
        }
      }
      if (DAT_0003b1f8 != '\0') {
        uVar16 = local_330[10];
        if (DAT_0003c2fd == '\0') {
          local_344 = uVar16;
          *(uint *)(puVar20 + -0x10) = uVar16;
          *(undefined4 *)(puVar20 + -0x14) = 0x190df;
          iVar6 = FUN_0001f1e0();
          uVar16 = local_344;
          if (iVar6 == 0) goto LAB_00018e2e;
          *(undefined4 *)(puVar20 + -0xc) = 0;
          *(int *)(puVar20 + -0x10) = iVar6;
          *(undefined4 *)(puVar20 + -0x14) = 0x190fb;
          pcVar15 = (char *)FUN_0001fb50();
          if ((int)pcVar15 < 0) {
            pcVar15 = (char *)0x0;
          }
        }
        else {
LAB_00018e2e:
          *(uint *)(puVar20 + -0x10) = uVar16;
          *(undefined **)(puVar20 + -0x14) = &DAT_0002d97b;
          *(undefined4 *)(puVar20 + -0x18) = 0xb;
          *(undefined4 *)(puVar20 + -0x1c) = 1;
          *(uint **)(puVar20 + -0x20) = local_334;
          *(undefined4 *)(puVar20 + -0x24) = 0x18e48;
          __sprintf_chk();
          puVar14 = local_334;
          do {
            puVar11 = puVar14;
            uVar18 = *puVar11 + 0xfefefeff & ~*puVar11;
            uVar16 = uVar18 & 0x80808080;
            puVar14 = puVar11 + 1;
          } while (uVar16 == 0);
          bVar26 = (uVar18 & 0x8080) == 0;
          if (bVar26) {
            uVar16 = uVar16 >> 0x10;
          }
          if (bVar26) {
            puVar14 = (uint *)((int)puVar11 + 6);
          }
          pcVar15 = (char *)((int)puVar14 +
                            ((-3 - (uint)CARRY1((byte)uVar16,(byte)uVar16)) - (int)local_334));
        }
        if ((int)DAT_0003c31c < (int)pcVar15) {
          DAT_0003c31c = pcVar15;
        }
      }
      if (DAT_0003c2fe != '\0') {
        *(undefined4 *)(puVar20 + -4) = 0x18dfe;
        iVar6 = FUN_00018000();
        if (DAT_0003c318 < iVar6) {
          DAT_0003c318 = iVar6;
        }
      }
      if (DAT_0003c335 != '\0') goto LAB_0001855f;
LAB_0001857f:
      if (DAT_0003c308 != 0) goto LAB_000182ec;
      *(undefined1 **)(puVar20 + -8) = local_2c1;
      uVar7 = local_330[8];
      *(undefined4 *)(puVar20 + -0xc) = 0;
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x185a9;
      uVar7 = FUN_0001f470();
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x185b1;
      sVar8 = strlen(*(char **)(puVar20 + -0x10));
      if ((int)DAT_0003c328 < (int)sVar8) {
        DAT_0003c328 = sVar8;
      }
      local_334 = (uint *)local_330[7];
      if (((uint)local_334 & 0xb000) == 0x2000) {
        uVar16 = local_330[0xc];
        uVar18 = local_330[0xb];
        *(uint **)(puVar20 + -8) = local_2ac;
        local_344 = uVar18;
        local_340 = uVar16;
        local_334 = local_2ac;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(uint *)(puVar20 + -0x10) = uVar18 >> 8 & 0xfff | uVar16 & 0xfffff000;
        *(undefined4 *)(puVar20 + -0x14) = 0x18623;
        uVar7 = FUN_0001f470();
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x1862b;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c314 < (int)sVar8) {
          DAT_0003c314 = sVar8;
        }
        iVar6 = local_330[0xc];
        uVar16 = local_330[0xb];
        *(uint **)(puVar20 + -8) = local_334;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(uint *)(puVar20 + -0x10) =
             (uint)(uint3)((uint3)(uVar16 >> 0x14) | (uint3)((uint)(iVar6 << 0x14) >> 8)) << 8 |
             uVar16 & 0xff;
        *(undefined4 *)(puVar20 + -0x14) = 0x18665;
        uVar7 = FUN_0001f470();
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x1866d;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c310 < (int)sVar8) {
          DAT_0003c310 = sVar8;
        }
        iVar6 = DAT_0003c310 + 2 + DAT_0003c314;
        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;
      }
      else {
        *(undefined4 *)(puVar20 + -4) = DAT_0003b1f4;
        *(undefined4 *)(puVar20 + -8) = DAT_0003b1f0;
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(undefined4 *)(puVar20 + -0x10) = 1;
        *(undefined4 *)(puVar20 + -0x14) = DAT_0003c2ec;
        *(uint **)(puVar20 + -0x18) = local_2ac;
        puVar23 = local_330;
        *(undefined4 *)(puVar20 + -0x1c) = local_330[0xf];
        *(undefined4 *)(puVar20 + -0x20) = puVar23[0xe];
        *(undefined4 *)(puVar20 + -0x24) = 0x18c7e;
        uVar7 = FUN_0001df30();
        *(undefined4 *)(puVar20 + -0xc) = 0;
        *(undefined4 *)(puVar20 + -0x10) = uVar7;
        *(undefined4 *)(puVar20 + -0x14) = 0x18c89;
        iVar6 = FUN_0001fb50();
        if (iVar6 <= DAT_0003c30c) goto LAB_000182ec;
      }
    }
    else {
LAB_000182df:
      if (DAT_0003c335 != '\0') {
LAB_0001855f:
        *(undefined4 *)(puVar20 + -0x10) = local_330[0x1d];
        *(undefined4 *)(puVar20 + -0x14) = 0x18570;
        sVar8 = strlen(*(char **)(puVar20 + -0x10));
        if ((int)DAT_0003c324 < (int)sVar8) {
          DAT_0003c324 = sVar8;
        }
        goto LAB_0001857f;
      }
LAB_000182ec:
      iVar6 = DAT_0003c30c;
    }
    DAT_0003c30c = iVar6;
    if (DAT_0003c2d4 != '\0') {
      *(uint **)(puVar20 + -8) = local_2ac;
      puVar23 = local_330;
      *(undefined4 *)(puVar20 + -0xc) = local_330[0x1a];
      *(undefined4 *)(puVar20 + -0x10) = puVar23[0x19];
      *(undefined4 *)(puVar20 + -0x14) = 0x186cb;
      uVar7 = FUN_0001f470();
      *(undefined4 *)(puVar20 + -0x10) = uVar7;
      *(undefined4 *)(puVar20 + -0x14) = 0x186d3;
      sVar8 = strlen(*(char **)(puVar20 + -0x10));
      if ((int)DAT_0003c330 < (int)sVar8) {
        DAT_0003c330 = sVar8;
      }
    }
  }
LAB_000182fb:
  *(uint **)(puVar20 + -0x10) = local_338;
  *(undefined4 *)(puVar20 + -0x14) = 0x18309;
  uVar7 = FUN_00024200();
  DAT_0003c358 = DAT_0003c358 + 1;
  *local_330 = uVar7;
LAB_0001831b:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(uVar24,uVar17);
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar20 + -4) = 0x19152;
  FUN_0002b190();
}

