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

intmax_t __regparm3 parameter_brace_expand_length(char *name)

{
  size_t sVar1;
  int iVar2;
  uint *puVar3;
  byte bVar4;
  char cVar5;
  word_list **ppwVar6;
  size_t sVar7;
  int iVar8;
  SHELL_VAR *pSVar9;
  WORD_LIST *pWVar10;
  char *pcVar11;
  size_t sVar12;
  char *__s;
  uint uVar13;
  word_list *pwVar14;
  char *unaff_ESI;
  ARRAY *a;
  int in_GS_OFFSET;
  byte bVar15;
  arrayind_t i;
  int local_40;
  int len;
  intmax_t arg_index;
  int local_20;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x75adb;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  bVar4 = name[1];
  if (bVar4 == 0) {
    sVar7 = 0;
    do {
      sVar1 = sVar7 + 1;
      if ((&dollar_vars)[sVar1] == 0) break;
      sVar7 = sVar1;
    } while (sVar1 != 9);
    pwVar14 = rest_of_args;
    if (rest_of_args != (WORD_LIST *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        sVar7 = sVar7 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (word_list *)0x0);
    }
LAB_00075b31:
    local_40 = (int)sVar7 >> 0x1f;
    goto LAB_00075b32;
  }
  if ((bVar4 == 0x40) || (bVar4 == 0x2a)) {
    if (name[2] != '\0') goto LAB_00075b9a;
    sVar7 = 0;
    do {
      sVar1 = sVar7 + 1;
      if ((&dollar_vars)[sVar1] == 0) break;
      sVar7 = sVar1;
    } while (sVar1 != 9);
    pwVar14 = rest_of_args;
    if (rest_of_args != (WORD_LIST *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        sVar7 = sVar7 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (word_list *)0x0);
    }
    goto LAB_00075b31;
  }
  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')) {
LAB_00075b9a:
    pcVar11 = name + 1;
    iVar8 = valid_array_reference(pcVar11,0);
    if (iVar8 != 0) {
      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);
      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {
        if (unbound_vars_is_error == 0) goto LAB_00075e08;
      }
      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {
        a = (ARRAY *)0x0;
        if ((uVar13 & 4) != 0) {
          a = (ARRAY *)pSVar9->value;
        }
        cVar5 = *(char *)arg_index;
        if ((uVar13 & 0x40) != 0) {
          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {
            ((char *)arg_index)[len + -1] = '\0';
            if ((char *)arg_index == (char *)0x0) {
              *(undefined1 *)(len + -1) = 0x5d;
            }
            else if (*(char *)arg_index == '\0') {
              ((char *)arg_index)[len + -1] = ']';
            }
            else {
              pWVar10 = expand_string_assignment((char *)arg_index,0);
              if (pWVar10 == (WORD_LIST *)0x0) {
                ((char *)arg_index)[len + -1] = ']';
              }
              else {
                pcVar11 = string_list_internal(pWVar10," ");
                dispose_words(pWVar10);
                ((char *)arg_index)[len + -1] = ']';
                if (pcVar11 != (char *)0x0) {
                  if (*pcVar11 == '\0') {
                    err_badarraysub((char *)arg_index);
                    free(pcVar11);
                    sVar7 = 0xffffffff;
                    local_40 = -1;
                    goto LAB_00075b32;
                  }
                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);
                  free(pcVar11);
                  goto LAB_00075cba;
                }
              }
            }
            goto LAB_000761ab;
          }
          if (pSVar9->value != (char *)0x0) {
            sVar7 = *(size_t *)(pSVar9->value + 8);
            goto LAB_00075b31;
          }
          goto LAB_00075e08;
        }
        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {
          if ((uVar13 & 4) == 0) {
            sVar7 = (size_t)(pSVar9->value != (char *)0x0);
            local_40 = 0;
          }
          else {
            sVar7 = 0;
            local_40 = 0;
            if (a != (ARRAY *)0x0) {
              sVar7 = a->num_elements;
              local_40 = (int)sVar7 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
        i = array_expand_index(pSVar9,(char *)arg_index,len,0);
        if ((pSVar9->attributes & 4) == 0) {
          if (i < 0) goto LAB_000761ab;
          arg_index._0_4_ = (char *)0x0;
          if (i == 0) {
            arg_index._0_4_ = pSVar9->value;
          }
        }
        else {
          if ((i < 0) &&
             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,
             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +
                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),
             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {
LAB_000761ab:
            err_badarraysub((char *)arg_index);
            sVar7 = 0xffffffff;
            local_40 = -1;
            goto LAB_00075b32;
          }
          arg_index._0_4_ = array_reference(a,i);
        }
LAB_00075cba:
        sVar12 = __ctype_get_mb_cur_max();
        local_40 = 0;
        sVar7 = 0;
        if (sVar12 < 2) {
          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {
            local_40 = 0;
            sVar7 = 1;
            if (((char *)arg_index)[1] != '\0') {
              local_40 = 0;
              sVar7 = 2;
              if (((char *)arg_index)[2] != '\0') {
                sVar7 = strlen((char *)arg_index);
                local_40 = 0;
              }
            }
          }
        }
        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {
          local_40 = 0;
          sVar7 = 1;
          if (((char *)arg_index)[1] != '\0') {
            sVar7 = mbstrlen((char *)arg_index);
            local_40 = (int)sVar7 >> 0x1f;
          }
        }
        goto LAB_00075b32;
      }
      cVar5 = ((char *)arg_index)[-1];
      ((char *)arg_index)[-1] = '\0';
      last_command_exit_value = 1;
      arg_index._0_4_ = (char *)arg_index + -1;
      err_unboundvar(pcVar11);
      *(char *)arg_index = cVar5;
      sVar7 = 0xffffffff;
      local_40 = -1;
      goto LAB_00075b32;
    }
    iVar8 = legal_number(pcVar11,&arg_index);
    if (iVar8 == 0) {
      pSVar9 = find_variable(pcVar11);
      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||
         ((uVar13 & 0x44) == 0)) {
        sVar12 = strlen(name);
        pcVar11 = (char *)xmalloc(sVar12 + 1);
        pcVar11 = strcpy(pcVar11,name);
        *pcVar11 = '$';
        pWVar10 = expand_string(pcVar11,1);
        if (pWVar10 == (WORD_LIST *)0x0) {
          free(pcVar11);
        }
        else {
          __s = string_list_internal(pWVar10," ");
          free(pcVar11);
          dispose_words(pWVar10);
          if (__s != (char *)0x0) {
            sVar12 = __ctype_get_mb_cur_max();
            sVar7 = 0;
            if (sVar12 < 2) {
              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {
                sVar7 = strlen(__s);
              }
            }
            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {
              sVar7 = mbstrlen(__s);
            }
            free(__s);
            local_40 = 0;
            goto LAB_00075b32;
          }
        }
      }
      else {
        if ((uVar13 & 0x40) == 0) {
          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);
        }
        else {
          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");
        }
        if (pcVar11 == (char *)0x0) goto LAB_00075f00;
        sVar12 = __ctype_get_mb_cur_max();
        if (sVar12 < 2) {
          if (*pcVar11 != '\0') {
            local_40 = 0;
            sVar7 = 1;
            if (pcVar11[1] != '\0') {
              if (pcVar11[2] == '\0') {
                sVar7 = 2;
                local_40 = 0;
              }
              else {
                uVar13 = 0xffffffff;
                local_40 = 0;
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar5 = *pcVar11;
                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;
                } while (cVar5 != '\0');
                sVar7 = ~uVar13 - 1;
              }
            }
            goto LAB_00075b32;
          }
        }
        else if (*pcVar11 != '\0') {
          local_40 = 0;
          sVar7 = 1;
          if (pcVar11[1] != '\0') {
            sVar7 = mbstrlen(pcVar11);
            local_40 = 0;
          }
          goto LAB_00075b32;
        }
      }
      goto LAB_00075e08;
    }
    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));
    if (unaff_ESI == (char *)0x0) {
LAB_00075f00:
      if (unbound_vars_is_error == 0) {
        __ctype_get_mb_cur_max();
        sVar7 = 0;
        local_40 = 0;
      }
      else {
        sVar7 = 0;
        local_40 = -0x80000000;
      }
      goto LAB_00075b32;
    }
    sVar12 = __ctype_get_mb_cur_max();
    if (sVar12 < 2) {
      if (*unaff_ESI == '\0') {
        sVar7 = 0;
        goto LAB_00075dd0;
      }
      goto LAB_00075e36;
    }
    sVar7 = 0;
    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {
      sVar7 = mbstrlen(unaff_ESI);
    }
    goto LAB_00075dd0;
  }
  switch(bVar4) {
  case 0x21:
    iVar8 = last_asynchronous_pid;
    if (last_asynchronous_pid == -1) goto LAB_00075e08;
    break;
  default:
    goto _L5403;
  case 0x23:
    iVar8 = 0;
    do {
      iVar2 = iVar8 + 1;
      if ((&dollar_vars)[iVar2] == 0) break;
      iVar8 = iVar2;
    } while (iVar2 != 9);
    pwVar14 = rest_of_args;
    if (rest_of_args != (WORD_LIST *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        iVar8 = iVar8 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (word_list *)0x0);
    }
    break;
  case 0x24:
    iVar8 = dollar_dollar_pid;
    break;
  case 0x2d:
    unaff_ESI = which_set_flags();
    goto _L5403;
  case 0x3f:
    iVar8 = last_command_exit_value;
  }
  unaff_ESI = itos((longlong)iVar8);
_L5403:
  if (unaff_ESI == (char *)0x0) {
LAB_00075e08:
    sVar7 = 0;
    local_40 = 0;
  }
  else {
    sVar7 = 0;
    if (*unaff_ESI != '\0') {
LAB_00075e36:
      sVar7 = 1;
      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {
        sVar7 = strlen(unaff_ESI);
      }
    }
LAB_00075dd0:
    local_40 = 0;
    free(unaff_ESI);
  }
LAB_00075b32:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(local_40,sVar7);
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

undefined8 __regparm3 FUN_00075ad0(char *param_1)

{
  uint *puVar1;
  byte bVar2;
  char cVar3;
  size_t sVar4;
  int iVar5;
  char *pcVar6;
  size_t sVar7;
  char *__s;
  uint uVar8;
  int *piVar9;
  char *unaff_ESI;
  int iVar10;
  int in_GS_OFFSET;
  byte bVar11;
  longlong lVar12;
  int local_40;
  int local_30;
  char *local_2c;
  undefined4 local_28;
  int local_20;
  undefined4 uStack_14;
  
  bVar11 = 0;
  uStack_14 = 0x75adb;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  bVar2 = param_1[1];
  if (bVar2 == 0) {
    sVar4 = 0;
    do {
      sVar7 = sVar4 + 1;
      if ((&dollar_vars)[sVar7] == 0) break;
      sVar4 = sVar7;
    } while (sVar7 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        sVar4 = sVar4 + 1;
      } while (piVar9 != (int *)0x0);
    }
LAB_00075b31:
    local_40 = (int)sVar4 >> 0x1f;
    goto LAB_00075b32;
  }
  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {
    if (param_1[2] != '\0') goto LAB_00075b9a;
    sVar4 = 0;
    do {
      sVar7 = sVar4 + 1;
      if ((&dollar_vars)[sVar7] == 0) break;
      sVar4 = sVar7;
    } while (sVar7 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        sVar4 = sVar4 + 1;
      } while (piVar9 != (int *)0x0);
    }
    goto LAB_00075b31;
  }
  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {
LAB_00075b9a:
    pcVar6 = param_1 + 1;
    iVar5 = valid_array_reference(pcVar6,0);
    if (iVar5 != 0) {
      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);
      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {
        if (unbound_vars_is_error == 0) goto LAB_00075e08;
      }
      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {
        iVar10 = 0;
        if ((uVar8 & 4) != 0) {
          iVar10 = *(int *)(iVar5 + 4);
        }
        cVar3 = *local_2c;
        if ((uVar8 & 0x40) != 0) {
          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {
            local_2c[local_30 + -1] = '\0';
            if (local_2c == (char *)0x0) {
              *(undefined1 *)(local_30 + -1) = 0x5d;
            }
            else if (*local_2c == '\0') {
              local_2c[local_30 + -1] = ']';
            }
            else {
              iVar10 = expand_string_assignment(local_2c,0);
              if (iVar10 == 0) {
                local_2c[local_30 + -1] = ']';
              }
              else {
                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);
                dispose_words(iVar10);
                local_2c[local_30 + -1] = ']';
                if (pcVar6 != (char *)0x0) {
                  if (*pcVar6 == '\0') {
                    err_badarraysub(local_2c);
                    free(pcVar6);
                    sVar4 = 0xffffffff;
                    local_40 = -1;
                    goto LAB_00075b32;
                  }
                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);
                  free(pcVar6);
                  goto LAB_00075cba;
                }
              }
            }
            goto LAB_000761ab;
          }
          if (*(int *)(iVar5 + 4) != 0) {
            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);
            goto LAB_00075b31;
          }
          goto LAB_00075e08;
        }
        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {
          if ((uVar8 & 4) == 0) {
            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);
            local_40 = 0;
          }
          else {
            sVar4 = 0;
            local_40 = 0;
            if (iVar10 != 0) {
              sVar4 = *(size_t *)(iVar10 + 0xc);
              local_40 = (int)sVar4 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);
        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {
          if (-1 < lVar12) {
            local_2c = (char *)0x0;
            if (lVar12 == 0) {
              local_2c = *(char **)(iVar5 + 4);
            }
            goto LAB_00075cba;
          }
        }
        else if ((-1 < lVar12) ||
                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,
                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +
                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),
                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {
          local_2c = (char *)array_reference(iVar10,lVar12);
LAB_00075cba:
          sVar7 = __ctype_get_mb_cur_max();
          local_40 = 0;
          sVar4 = 0;
          if (sVar7 < 2) {
            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {
              local_40 = 0;
              sVar4 = 1;
              if (local_2c[1] != '\0') {
                local_40 = 0;
                sVar4 = 2;
                if (local_2c[2] != '\0') {
                  sVar4 = strlen(local_2c);
                  local_40 = 0;
                }
              }
            }
          }
          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {
            local_40 = 0;
            sVar4 = 1;
            if (local_2c[1] != '\0') {
              sVar4 = mbstrlen(local_2c);
              local_40 = (int)sVar4 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
LAB_000761ab:
        err_badarraysub(local_2c);
        sVar4 = 0xffffffff;
        local_40 = -1;
        goto LAB_00075b32;
      }
      cVar3 = local_2c[-1];
      local_2c[-1] = '\0';
      last_command_exit_value = 1;
      local_2c = local_2c + -1;
      err_unboundvar(pcVar6);
      *local_2c = cVar3;
      sVar4 = 0xffffffff;
      local_40 = -1;
      goto LAB_00075b32;
    }
    iVar5 = legal_number(pcVar6,&local_2c);
    if (iVar5 == 0) {
      iVar5 = find_variable(pcVar6);
      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||
         ((uVar8 & 0x44) == 0)) {
        sVar4 = strlen(param_1);
        pcVar6 = (char *)xmalloc(sVar4 + 1);
        pcVar6 = strcpy(pcVar6,param_1);
        *pcVar6 = '$';
        iVar5 = FUN_0006f720();
        if (iVar5 == 0) {
          free(pcVar6);
        }
        else {
          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);
          free(pcVar6);
          dispose_words(iVar5);
          if (__s != (char *)0x0) {
            sVar7 = __ctype_get_mb_cur_max();
            sVar4 = 0;
            if (sVar7 < 2) {
              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {
                sVar4 = strlen(__s);
              }
            }
            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {
              sVar4 = mbstrlen(__s);
            }
            free(__s);
            local_40 = 0;
            goto LAB_00075b32;
          }
        }
      }
      else {
        if ((uVar8 & 0x40) == 0) {
          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);
        }
        else {
          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);
        }
        if (pcVar6 == (char *)0x0) goto LAB_00075f00;
        sVar4 = __ctype_get_mb_cur_max();
        if (sVar4 < 2) {
          if (*pcVar6 != '\0') {
            local_40 = 0;
            sVar4 = 1;
            if (pcVar6[1] != '\0') {
              if (pcVar6[2] == '\0') {
                sVar4 = 2;
                local_40 = 0;
              }
              else {
                uVar8 = 0xffffffff;
                local_40 = 0;
                do {
                  if (uVar8 == 0) break;
                  uVar8 = uVar8 - 1;
                  cVar3 = *pcVar6;
                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;
                } while (cVar3 != '\0');
                sVar4 = ~uVar8 - 1;
              }
            }
            goto LAB_00075b32;
          }
        }
        else if (*pcVar6 != '\0') {
          local_40 = 0;
          sVar4 = 1;
          if (pcVar6[1] != '\0') {
            sVar4 = mbstrlen(pcVar6);
            local_40 = 0;
          }
          goto LAB_00075b32;
        }
      }
      goto LAB_00075e08;
    }
    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);
    if (unaff_ESI == (char *)0x0) {
LAB_00075f00:
      if (unbound_vars_is_error == 0) {
        __ctype_get_mb_cur_max();
        sVar4 = 0;
        local_40 = 0;
      }
      else {
        sVar4 = 0;
        local_40 = -0x80000000;
      }
      goto LAB_00075b32;
    }
    sVar4 = __ctype_get_mb_cur_max();
    if (sVar4 < 2) {
      if (*unaff_ESI == '\0') {
        sVar4 = 0;
        goto LAB_00075dd0;
      }
      goto LAB_00075e36;
    }
    sVar4 = 0;
    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {
      sVar4 = mbstrlen(unaff_ESI);
    }
    goto LAB_00075dd0;
  }
  switch(bVar2) {
  case 0x21:
    iVar5 = last_asynchronous_pid;
    if (last_asynchronous_pid == -1) goto LAB_00075e08;
    break;
  default:
    goto LAB_00075e29;
  case 0x23:
    iVar5 = 0;
    do {
      iVar10 = iVar5 + 1;
      if ((&dollar_vars)[iVar10] == 0) break;
      iVar5 = iVar10;
    } while (iVar10 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        iVar5 = iVar5 + 1;
      } while (piVar9 != (int *)0x0);
    }
    break;
  case 0x24:
    iVar5 = dollar_dollar_pid;
    break;
  case 0x2d:
    unaff_ESI = (char *)which_set_flags();
    goto LAB_00075e29;
  case 0x3f:
    iVar5 = last_command_exit_value;
  }
  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);
LAB_00075e29:
  if (unaff_ESI == (char *)0x0) {
LAB_00075e08:
    sVar4 = 0;
    local_40 = 0;
  }
  else {
    sVar4 = 0;
    if (*unaff_ESI != '\0') {
LAB_00075e36:
      sVar4 = 1;
      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {
        sVar4 = strlen(unaff_ESI);
      }
    }
LAB_00075dd0:
    local_40 = 0;
    free(unaff_ESI);
  }
LAB_00075b32:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(local_40,sVar4);
  }
                    /* WARNING: Subroutine does not return */
  FUN_000ecc40();
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0xd4525
SUB ESP,0x3c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
MOVZX EAX,byte ptr [EBP + 0x1]
TEST AL,AL
JNZ 0x00075b50
LEA ECX,[EBX + 0x8e20]
XOR EDX,EDX
LEA EAX,[EDX + 0x1]
MOV EBP,dword ptr [ECX + EAX*0x4]
TEST EBP,EBP
JZ 0x00075e68
MOV EDX,EAX
CMP EAX,0x9
JNZ 0x00075b00
LEA EDX,[EBX + 0x5cf0]
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x00075b31
LEA ESI,[ESI]
MOV EDX,dword ptr [EDX]
ADD EAX,0x1
TEST EDX,EDX
JNZ 0x00075b28
CDQ
MOV EDI,dword ptr [ESP + 0x2c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x000762d1
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x40
JZ 0x00075b90
CMP AL,0x2a
JZ 0x00075b90
LEA ECX,[EBX + 0xb80]
MOVZX EDX,AL
TEST byte ptr [ECX + EDX*0x4 + 0x1],0x8
JZ 0x00075b9a
CMP byte ptr [EBP + 0x2],0x0
JNZ 0x00075b9a
SUB EAX,0x21
CMP AL,0x1e
JA 0x00075e29
MOVZX EAX,AL
MOV EDI,dword ptr [EBX + EAX*0x4 + 0xfffa7020]
ADD EDI,EBX
JMP EDI
CMP byte ptr [EBP + 0x2],0x0
JZ 0x00075d10
SUB ESP,0x8
LEA EDI,[EBP + 0x1]
PUSH 0x0
PUSH EDI
CALL 0x00084330
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00075d60
LEA EAX,[ESP + 0x1c]
PUSH EAX
LEA EAX,[ESP + 0x24]
PUSH EAX
PUSH 0x0
PUSH EDI
CALL 0x00085280
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00075df8
MOV EAX,dword ptr [EAX + 0x14]
TEST AH,0x10
JNZ 0x00075df8
TEST AL,0x44
JNZ 0x00075bf2
LEA EDX,[EBX + 0x5e9c]
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JNZ 0x00076288
MOV ECX,EAX
XOR EDI,EDI
AND ECX,0x4
MOV dword ptr [ESP + 0x8],ECX
JZ 0x00075c02
MOV EDI,dword ptr [ESI + 0x4]
MOV EBP,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [EBP]
CMP DL,0x2a
SETZ CL
CMP DL,0x40
SETZ DL
OR ECX,EDX
TEST AL,0x40
JZ 0x0007604b
TEST CL,CL
JZ 0x00075c2e
CMP byte ptr [EBP + 0x1],0x5d
JZ 0x00076248
MOV EAX,dword ptr [ESP + 0x1c]
MOV byte ptr [EBP + EAX*0x1 + -0x1],0x0
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x0007623b
CMP byte ptr [EAX],0x0
JZ 0x000761d7
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x00075980
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000761c8
SUB ESP,0x8
LEA EAX,[EBX + 0xfffa68bf]
PUSH EAX
PUSH EBP
CALL 0x0006a6c0
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x00046900
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
MOV byte ptr [EDX + EAX*0x1 + -0x1],0x5d
TEST EDI,EDI
JZ 0x000761ab
CMP byte ptr [EDI],0x0
JZ 0x00076267
SUB ESP,0x8
PUSH EDI
PUSH dword ptr [ESI + 0x4]
CALL 0x00085b80
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x30],EAX
CALL 0x0002f200
ADD ESP,0x10
CALL 0x0002f520
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,0x0
CMP EAX,0x1
MOV EAX,0x0
JBE 0x000760a3
TEST ECX,ECX
JZ 0x00075b32
CMP byte ptr [ECX],0x0
JZ 0x00075b32
XOR EDX,EDX
CMP byte ptr [ECX + 0x1],0x0
MOV EAX,0x1
JZ 0x00075b32
SUB ESP,0xc
PUSH ECX
CALL 0x000c3070
ADD ESP,0x10
CDQ
JMP 0x00075b32
LEA ECX,[EBX + 0x8e20]
XOR EDX,EDX
LEA ESI,[ESI]
NOP
LEA EAX,[EDX + 0x1]
MOV EDI,dword ptr [ECX + EAX*0x4]
TEST EDI,EDI
JZ 0x00076044
MOV EDX,EAX
CMP EAX,0x9
JNZ 0x00075d20
LEA EDX,[EBX + 0x5cf0]
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x00075b31
LEA ESI,[ESI]
MOV EDX,dword ptr [EDX]
ADD EAX,0x1
TEST EDX,EDX
JNZ 0x00075d48
JMP 0x00075b31
SUB ESP,0x8
LEA EAX,[ESP + 0x28]
PUSH EAX
PUSH EDI
CALL 0x00041140
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00075e70
SUB ESP,0x8
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
CALL 0x0006b000
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00075f00
CALL 0x0002f520
CMP EAX,0x1
JBE 0x000760e9
XOR EAX,EAX
XOR EDX,EDX
CMP byte ptr [ESI],0x0
JZ 0x00075dd0
XOR EDX,EDX
CMP byte ptr [ESI + 0x1],0x0
MOV EAX,0x1
JZ 0x00075dd0
SUB ESP,0xc
PUSH ESI
CALL 0x000c3070
XOR EDX,EDX
ADD ESP,0x10
LEA ESI,[ESI]
NOP
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],EDX
PUSH ESI
CALL 0x0002f200
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x00075b32
LEA EAX,[EBX + 0x5e9c]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x00076288
XOR EAX,EAX
XOR EDX,EDX
JMP 0x00075b32
TEST ESI,ESI
JZ 0x00075e08
XOR EAX,EAX
XOR EDX,EDX
CMP byte ptr [ESI],0x0
JZ 0x00075dd0
XOR EDX,EDX
CMP byte ptr [ESI + 0x1],0x0
MOV EAX,0x1
JZ 0x00075dd0
XOR EDX,EDX
CMP byte ptr [ESI + 0x2],0x0
MOV EAX,0x2
JZ 0x00075dd0
SUB ESP,0xc
PUSH ESI
CALL 0x0002f760
ADD ESP,0x10
XOR EDX,EDX
JMP 0x00075dd0
MOV EAX,EDX
JMP 0x00075b15
SUB ESP,0xc
PUSH EDI
CALL 0x00051fa0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00075f20
MOV EDX,dword ptr [EAX + 0x14]
TEST DH,0x10
JNZ 0x00075f20
TEST DL,0x44
JZ 0x00075f20
AND EDX,0x40
MOV EAX,dword ptr [EAX + 0x4]
JZ 0x0007617d
SUB ESP,0x8
LEA EDX,[EBX + 0xfffb8cee]
PUSH EDX
PUSH EAX
CALL 0x00085b80
ADD ESP,0x10
MOV EDI,EAX
TEST EDI,EDI
JZ 0x00075f00
CALL 0x0002f520
CMP EAX,0x1
JBE 0x000761e2
CMP byte ptr [EDI],0x0
JZ 0x00075e08
XOR EDX,EDX
CMP byte ptr [EDI + 0x1],0x0
MOV EAX,0x1
JZ 0x00075b32
SUB ESP,0xc
PUSH EDI
CALL 0x000c3070
XOR EDX,EDX
ADD ESP,0x10
JMP 0x00075b32
LEA EAX,[EBX + 0x5e9c]
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JNZ 0x000762c5
CALL 0x0002f520
XOR EAX,EAX
XOR EDX,EDX
JMP 0x00075b32
SUB ESP,0xc
PUSH EBP
CALL 0x0002f760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00099200
POP ESI
POP EDI
PUSH EBP
PUSH EAX
CALL 0x0002f580
MOV EDX,0x1
MOV byte ptr [EAX],0x24
MOV ESI,EAX
CALL 0x0006f720
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00076092
SUB ESP,0x8
LEA EAX,[EBX + 0xfffa68bf]
PUSH EAX
PUSH EBP
CALL 0x0006a6c0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x0002f200
MOV dword ptr [ESP],EBP
CALL 0x00046900
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00075e08
CALL 0x0002f520
MOV EDX,0x0
CMP EAX,0x1
MOV EAX,0x0
JBE 0x00076117
CMP byte ptr [EDI],0x0
JZ 0x00075fb4
XOR EDX,EDX
CMP byte ptr [EDI + 0x1],0x0
MOV EAX,0x1
JNZ 0x00076228
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],EDX
PUSH EDI
CALL 0x0002f200
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x00075b32
MOV EAX,EDX
JMP 0x00075d35
TEST CL,CL
JZ 0x00076059
CMP byte ptr [EBP + 0x1],0x5d
JZ 0x00076155
PUSH 0x0
PUSH dword ptr [ESP + 0x20]
PUSH EBP
PUSH ESI
CALL 0x00084400
ADD ESP,0x10
TEST byte ptr [ESI + 0x14],0x4
JZ 0x000760fb
TEST EDX,EDX
JS 0x00076194
SUB ESP,0x4
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x00082860
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
JMP 0x00075cba
SUB ESP,0xc
PUSH ESI
CALL 0x0002f200
ADD ESP,0x10
JMP 0x00075e08
TEST ECX,ECX
JZ 0x00075b32
CMP byte ptr [ECX],0x0
JZ 0x00075b32
XOR EDX,EDX
CMP byte ptr [ECX + 0x1],0x0
MOV EAX,0x1
JZ 0x00075b32
XOR EDX,EDX
CMP byte ptr [ECX + 0x2],0x0
MOV EAX,0x2
JZ 0x00075b32
SUB ESP,0xc
PUSH ECX
CALL 0x0002f760
ADD ESP,0x10
XOR EDX,EDX
JMP 0x00075b32
CMP byte ptr [ESI],0x0
JNZ 0x00075e36
XOR EAX,EAX
XOR EDX,EDX
JMP 0x00075dd0
TEST EDX,EDX
JS 0x000761ab
MOV ECX,EAX
XOR EAX,EAX
OR EDX,ECX
JNZ 0x0007610e
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x20],EAX
JMP 0x00075cba
CMP byte ptr [EDI],0x0
JZ 0x00075fb4
XOR EDX,EDX
CMP byte ptr [EDI + 0x1],0x0
MOV EAX,0x1
JZ 0x00075fb4
XOR EDX,EDX
CMP byte ptr [EDI + 0x2],0x0
MOV EAX,0x2
JZ 0x00075fb4
SUB ESP,0xc
PUSH EDI
CALL 0x0002f760
ADD ESP,0x10
XOR EDX,EDX
JMP 0x00075fb4
MOV ECX,dword ptr [ESP + 0x8]
TEST ECX,ECX
JZ 0x00076217
XOR EAX,EAX
XOR EDX,EDX
TEST EDI,EDI
JZ 0x00075b32
MOV EAX,dword ptr [EDI + 0xc]
CDQ
JMP 0x00075b32
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x00082860
ADD ESP,0x10
MOV EDI,EAX
JMP 0x00075eba
MOV ECX,dword ptr [ESI + 0x4]
ADD EAX,dword ptr [ECX + 0x4]
ADC EDX,dword ptr [ECX + 0x8]
ADD EAX,0x1
ADC EDX,0x0
TEST EDX,EDX
JNS 0x0007607b
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00059b10
OR EAX,0xffffffff
ADD ESP,0x10
MOV EDX,EAX
JMP 0x00075b32
MOV EDX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x1c]
MOV byte ptr [EDX + EAX*0x1 + -0x1],0x5d
JMP 0x000761ab
MOV EDX,dword ptr [ESP + 0x1c]
MOV byte ptr [EAX + EDX*0x1 + -0x1],0x5d
JMP 0x000761ab
CMP byte ptr [EDI],0x0
JZ 0x00075e08
XOR EDX,EDX
CMP byte ptr [EDI + 0x1],0x0
MOV EAX,0x1
JZ 0x00075b32
CMP byte ptr [EDI + 0x2],0x0
JZ 0x0007625b
XOR EAX,EAX
OR ECX,0xffffffff
XOR EDX,EDX
SCASB.REPNE ES:EDI
MOV EAX,ECX
NOT EAX
SUB EAX,0x1
JMP 0x00075b32
MOV EDX,dword ptr [ESI + 0x4]
XOR EAX,EAX
TEST EDX,EDX
SETNZ AL
XOR EDX,EDX
JMP 0x00075b32
SUB ESP,0xc
PUSH EDI
CALL 0x000c3070
XOR EDX,EDX
ADD ESP,0x10
JMP 0x00075fb4
MOV EAX,dword ptr [ESP + 0x1c]
MOV byte ptr [EAX + -0x1],0x5d
JMP 0x000761ab
MOV EAX,dword ptr [ESI + 0x4]
TEST EAX,EAX
JZ 0x00075e08
MOV EAX,dword ptr [EAX + 0x8]
JMP 0x00075b31
MOV EAX,0x2
XOR EDX,EDX
JMP 0x00075b32
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00059b10
MOV dword ptr [ESP],EDI
CALL 0x0002f200
OR EAX,0xffffffff
ADD ESP,0x10
MOV EDX,EAX
JMP 0x00075b32
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0xc
LEA EDX,[EAX + -0x1]
MOV dword ptr [ESP + 0x2c],EDX
MOVZX ESI,byte ptr [EAX + -0x1]
MOV byte ptr [EAX + -0x1],0x0
LEA EAX,[EBX + 0x8df0]
MOV dword ptr [EAX],0x1
PUSH EDI
CALL 0x00059b50
MOV EAX,dword ptr [ESP + 0x30]
MOV EBX,ESI
ADD ESP,0x10
MOV byte ptr [EAX],BL
OR EAX,0xffffffff
MOV EDX,EAX
JMP 0x00075b32
XOR EAX,EAX
MOV EDX,0x80000000
JMP 0x00075b32
CALL 0x000ecc40
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined8 __regparm3 FUN_00075ad0(char *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000ecc40();\n}\n\n" comment (function_definition "undefined8 __regparm3 FUN_00075ad0(char *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000ecc40();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00075ad0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000ecc40();\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *unaff_ESI;" primitive_type (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x75adb;" (assignment_expression "uStack_14 = 0x75adb" identifier = number_literal) ;) (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) ))))) ;) (expression_statement "bVar2 = param_1[1];" (assignment_expression "bVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" do (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" { (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" ( (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" identifier = identifier) ;) }) while (parenthesized_expression "(sVar7 != 9)" ( (binary_expression "sVar7 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;" statement_identifier : (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (if_statement "if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" if (parenthesized_expression "((bVar2 == 0x40) || (bVar2 == 0x2a))" ( (binary_expression "(bVar2 == 0x40) || (bVar2 == 0x2a)" (parenthesized_expression "(bVar2 == 0x40)" ( (binary_expression "bVar2 == 0x40" identifier == number_literal) )) || (parenthesized_expression "(bVar2 == 0x2a)" ( (binary_expression "bVar2 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" { (if_statement "if (param_1[2] != '\0') goto LAB_00075b9a;" if (parenthesized_expression "(param_1[2] != '\0')" ( (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00075b9a;" goto statement_identifier ;)) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" do (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" { (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" ( (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" identifier = identifier) ;) }) while (parenthesized_expression "(sVar7 != 9)" ( (binary_expression "sVar7 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (if_statement "if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" if (parenthesized_expression "(((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0'))" ( (binary_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')" (parenthesized_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0)" ( (binary_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8)" ( (binary_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8" (pointer_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" * (cast_expression "(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" ( (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4 + 1" (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4" (cast_expression "(int)&sh_syntaxtab" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sh_syntaxtab" & identifier)) + (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[2] != '\0')" ( (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" { (labeled_statement "LAB_00075b9a:\n    pcVar6 = param_1 + 1;" statement_identifier : (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = valid_array_reference(pcVar6,0);" (assignment_expression "iVar5 = valid_array_reference(pcVar6,0)" identifier = (call_expression "valid_array_reference(pcVar6,0)" identifier (argument_list "(pcVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" { (expression_statement "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);" (assignment_expression "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30)" identifier = (call_expression "array_variable_part(pcVar6,0,&local_2c,&local_30)" identifier (argument_list "(pcVar6,0,&local_2c,&local_30)" ( identifier , number_literal , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_30" & identifier) )))) ;) (if_statement "if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" ( (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" ( (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) , (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" ( (binary_expression "uVar8 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }" { (if_statement "if (unbound_vars_is_error == 0) goto LAB_00075e08;" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) }) (else_clause "else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" else (if_statement "if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "(((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0))" ( (binary_expression "((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)" (parenthesized_expression "((uVar8 & 0x44) != 0)" ( (binary_expression "(uVar8 & 0x44) != 0" (parenthesized_expression "(uVar8 & 0x44)" ( (binary_expression "uVar8 & 0x44" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }" if (parenthesized_expression "((uVar8 & 4) != 0)" ( (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(iVar5 + 4);\n        }" { (expression_statement "iVar10 = *(int *)(iVar5 + 4);" (assignment_expression "iVar10 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "cVar3 = *local_2c;" (assignment_expression "cVar3 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (if_statement "if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" if (parenthesized_expression "((uVar8 & 0x40) != 0)" ( (binary_expression "(uVar8 & 0x40) != 0" (parenthesized_expression "(uVar8 & 0x40)" ( (binary_expression "uVar8 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" { (if_statement "if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" if (parenthesized_expression "((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']'))" ( (binary_expression "(cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')" (parenthesized_expression "(cVar3 != '*' && cVar3 != '@')" ( (binary_expression "cVar3 != '*' && cVar3 != '@'" (binary_expression "cVar3 != '*'" identifier != (char_literal "'*'" ' character ')) && (binary_expression "cVar3 != '@'" identifier != (char_literal "'@'" ' character '))) )) || (parenthesized_expression "(local_2c[1] != ']')" ( (binary_expression "local_2c[1] != ']'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" { (expression_statement "local_2c[local_30 + -1] = '\0';" (assignment_expression "local_2c[local_30 + -1] = '\0'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "(local_2c == (char *)0x0)" ( (binary_expression "local_2c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }" { (expression_statement "*(undefined1 *)(local_30 + -1) = 0x5d;" (assignment_expression "*(undefined1 *)(local_30 + -1) = 0x5d" (pointer_expression "*(undefined1 *)(local_30 + -1)" * (cast_expression "(undefined1 *)(local_30 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + -1)" ( (binary_expression "local_30 + -1" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (if_statement "if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "(*local_2c == '\0')" ( (binary_expression "*local_2c == '\0'" (pointer_expression "*local_2c" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_2c[local_30 + -1] = ']';\n            }" { (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (compound_statement "{\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" { (expression_statement "iVar10 = expand_string_assignment(local_2c,0);" (assignment_expression "iVar10 = expand_string_assignment(local_2c,0)" identifier = (call_expression "expand_string_assignment(local_2c,0)" identifier (argument_list "(local_2c,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                local_2c[local_30 + -1] = ']';\n              }" { (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" else (compound_statement "{\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" { (expression_statement "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);" (assignment_expression "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf)" identifier = (cast_expression "(char *)string_list_internal(iVar10,&DAT_000f08bf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "string_list_internal(iVar10,&DAT_000f08bf)" identifier (argument_list "(iVar10,&DAT_000f08bf)" ( identifier , (pointer_expression "&DAT_000f08bf" & identifier) ))))) ;) (expression_statement "dispose_words(iVar10);" (call_expression "dispose_words(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" { (if_statement "if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" { (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);" (assignment_expression "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" identifier = (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),pcVar6)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (goto_statement "goto LAB_00075cba;" goto statement_identifier ;) })) }))) }))))) (goto_statement "goto LAB_000761ab;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" if (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" ( (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" { (expression_statement "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);" (assignment_expression "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8)" identifier = (pointer_expression "*(size_t *)(*(int *)(iVar5 + 4) + 8)" * (cast_expression "(size_t *)(*(int *)(iVar5 + 4) + 8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" ( (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (if_statement "if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']'))" ( (binary_expression "(cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')" (parenthesized_expression "(cVar3 == '*' || cVar3 == '@')" ( (binary_expression "cVar3 == '*' || cVar3 == '@'" (binary_expression "cVar3 == '*'" identifier == (char_literal "'*'" ' character ')) || (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character '))) )) && (parenthesized_expression "(local_2c[1] == ']')" ( (binary_expression "local_2c[1] == ']'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" { (if_statement "if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "((uVar8 & 4) == 0)" ( (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }" { (expression_statement "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);" (assignment_expression "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0)" identifier = (cast_expression "(size_t)(*(int *)(iVar5 + 4) != 0)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" ( (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) != number_literal) )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" else (compound_statement "{\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" { (expression_statement "sVar4 = *(size_t *)(iVar10 + 0xc);" (assignment_expression "sVar4 = *(size_t *)(iVar10 + 0xc)" identifier = (pointer_expression "*(size_t *)(iVar10 + 0xc)" * (cast_expression "(size_t *)(iVar10 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) }))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "lVar12 = array_expand_index(iVar5,local_2c,local_30,0);" (assignment_expression "lVar12 = array_expand_index(iVar5,local_2c,local_30,0)" identifier = (call_expression "array_expand_index(iVar5,local_2c,local_30,0)" identifier (argument_list "(iVar5,local_2c,local_30,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x14) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x14) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x14) & 4)" ( (binary_expression "*(byte *)(iVar5 + 0x14) & 4" (pointer_expression "*(byte *)(iVar5 + 0x14)" * (cast_expression "(byte *)(iVar5 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }" { (if_statement "if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" if (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) (compound_statement "{\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" { (expression_statement "local_2c = (char *)0x0;" (assignment_expression "local_2c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              local_2c = *(char **)(iVar5 + 4);\n            }" { (expression_statement "local_2c = *(char **)(iVar5 + 4);" (assignment_expression "local_2c = *(char **)(iVar5 + 4)" identifier = (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_00075cba;" goto statement_identifier ;) })) }) (else_clause "else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" else (if_statement "if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5))" ( (binary_expression "(-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) || (parenthesized_expression "(puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" ( (comma_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4)" identifier = (cast_expression "(uint *)(*(int *)(iVar5 + 4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 4)" ( (binary_expression "*(int *)(iVar5 + 4) + 4" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) )))) , (comma_expression "uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "uVar8 = (uint)lVar12 + *puVar1" identifier = (binary_expression "(uint)lVar12 + *puVar1" (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier) + (pointer_expression "*puVar1" * identifier))) , (comma_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" identifier = (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8)" (cast_expression "(int)((ulonglong)lVar12 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar12 >> 0x20)" ( (binary_expression "(ulonglong)lVar12 >> 0x20" (cast_expression "(ulonglong)lVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar5 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" ( (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)lVar12,*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)lVar12,*puVar1)" identifier (argument_list "((uint)lVar12,*puVar1)" ( (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*puVar1" * identifier) ))))) + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) , (comma_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1)" identifier = (call_expression "CONCAT44(iVar5,uVar8 + 1)" identifier (argument_list "(iVar5,uVar8 + 1)" ( identifier , (binary_expression "uVar8 + 1" identifier + number_literal) )))) , (binary_expression "-1 < iVar5" number_literal < identifier))))) ))) )) (compound_statement "{\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" { (expression_statement "local_2c = (char *)array_reference(iVar10,lVar12);" (assignment_expression "local_2c = (char *)array_reference(iVar10,lVar12)" identifier = (cast_expression "(char *)array_reference(iVar10,lVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "array_reference(iVar10,lVar12)" identifier (argument_list "(iVar10,lVar12)" ( identifier , identifier ))))) ;) (labeled_statement "LAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();" statement_identifier : (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "(sVar7 < 2)" ( (binary_expression "sVar7 < 2" identifier < number_literal) )) (compound_statement "{\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }" { (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" if (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" ( (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" ( (binary_expression "local_2c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_2c != '\0')" ( (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" if (parenthesized_expression "(local_2c[1] != '\0')" ( (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" identifier = number_literal) ;) (if_statement "if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" if (parenthesized_expression "(local_2c[2] != '\0')" ( (binary_expression "local_2c[2] != '\0'" (subscript_expression "local_2c[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" { (expression_statement "sVar4 = strlen(local_2c);" (assignment_expression "sVar4 = strlen(local_2c)" identifier = (call_expression "strlen(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) })) })) }) (else_clause "else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" else (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" ( (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" ( (binary_expression "local_2c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_2c != '\0')" ( (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" if (parenthesized_expression "(local_2c[1] != '\0')" ( (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" { (expression_statement "sVar4 = mbstrlen(local_2c);" (assignment_expression "sVar4 = mbstrlen(local_2c)" identifier = (call_expression "mbstrlen(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) (labeled_statement "LAB_000761ab:\n        err_badarraysub(local_2c);" statement_identifier : (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;)) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) (expression_statement "cVar3 = local_2c[-1];" (assignment_expression "cVar3 = local_2c[-1]" identifier = (subscript_expression "local_2c[-1]" identifier [ number_literal ])) ;) (expression_statement "local_2c[-1] = '\0';" (assignment_expression "local_2c[-1] = '\0'" (subscript_expression "local_2c[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (expression_statement "local_2c = local_2c + -1;" (assignment_expression "local_2c = local_2c + -1" identifier = (binary_expression "local_2c + -1" identifier + number_literal)) ;) (expression_statement "err_unboundvar(pcVar6);" (call_expression "err_unboundvar(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "*local_2c = cVar3;" (assignment_expression "*local_2c = cVar3" (pointer_expression "*local_2c" * identifier) = identifier) ;) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "iVar5 = legal_number(pcVar6,&local_2c);" (assignment_expression "iVar5 = legal_number(pcVar6,&local_2c)" identifier = (call_expression "legal_number(pcVar6,&local_2c)" identifier (argument_list "(pcVar6,&local_2c)" ( identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" { (expression_statement "iVar5 = find_variable(pcVar6);" (assignment_expression "iVar5 = find_variable(pcVar6)" identifier = (call_expression "find_variable(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (if_statement "if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" if (parenthesized_expression "(((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0))" ( (binary_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)" (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" ( (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" ( (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) , (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" ( (binary_expression "uVar8 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) || (parenthesized_expression "((uVar8 & 0x44) == 0)" ( (binary_expression "(uVar8 & 0x44) == 0" (parenthesized_expression "(uVar8 & 0x44)" ( (binary_expression "uVar8 & 0x44" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }" { (expression_statement "sVar4 = strlen(param_1);" (assignment_expression "sVar4 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar6 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar6 = (char *)xmalloc(sVar4 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar4 + 1)" identifier (argument_list "(sVar4 + 1)" ( (binary_expression "sVar4 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strcpy(pcVar6,param_1);" (assignment_expression "pcVar6 = strcpy(pcVar6,param_1)" identifier = (call_expression "strcpy(pcVar6,param_1)" identifier (argument_list "(pcVar6,param_1)" ( identifier , identifier )))) ;) (expression_statement "*pcVar6 = '$';" (assignment_expression "*pcVar6 = '$'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'$'" ' character ')) ;) (expression_statement "iVar5 = FUN_0006f720();" (assignment_expression "iVar5 = FUN_0006f720()" identifier = (call_expression "FUN_0006f720()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          free(pcVar6);\n        }" { (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }) (else_clause "else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" else (compound_statement "{\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" { (expression_statement "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf);" (assignment_expression "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf)" identifier = (cast_expression "(char *)string_list_internal(iVar5,&DAT_000f08bf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "string_list_internal(iVar5,&DAT_000f08bf)" identifier (argument_list "(iVar5,&DAT_000f08bf)" ( identifier , (pointer_expression "&DAT_000f08bf" & identifier) ))))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "dispose_words(iVar5);" (call_expression "dispose_words(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" { (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" if (parenthesized_expression "(sVar7 < 2)" ( (binary_expression "sVar7 < 2" identifier < number_literal) )) (compound_statement "{\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }" { (if_statement "if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }" if (parenthesized_expression "(((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0'))" ( (binary_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')" (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" ( (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(sVar4 = 2, __s[2] != '\0')" ( (comma_expression "sVar4 = 2, __s[2] != '\0'" (assignment_expression "sVar4 = 2" identifier = number_literal) , (binary_expression "__s[2] != '\0'" (subscript_expression "__s[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                sVar4 = strlen(__s);\n              }" { (expression_statement "sVar4 = strlen(__s);" (assignment_expression "sVar4 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })) }) (else_clause "else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" else (if_statement "if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" if (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" ( (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n              sVar4 = mbstrlen(__s);\n            }" { (expression_statement "sVar4 = mbstrlen(__s);" (assignment_expression "sVar4 = mbstrlen(__s)" identifier = (call_expression "mbstrlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })))) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" else (compound_statement "{\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" { (if_statement "if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" if (parenthesized_expression "((uVar8 & 0x40) == 0)" ( (binary_expression "(uVar8 & 0x40) == 0" (parenthesized_expression "(uVar8 & 0x40)" ( (binary_expression "uVar8 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }" { (expression_statement "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);" (assignment_expression "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" identifier = (cast_expression "(char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "array_reference(*(undefined4 *)(iVar5 + 4),0,0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),0,0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , number_literal , number_literal ))))) ;) }) (else_clause "else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" else (compound_statement "{\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" { (expression_statement "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);" (assignment_expression "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" identifier = (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "&DAT_00102cee" & identifier) ))))) ;) }))) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_00075f00;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00075f00;" goto statement_identifier ;)) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(sVar4 < 2)" ( (binary_expression "sVar4 < 2" identifier < number_literal) )) (compound_statement "{\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }" { (if_statement "if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" if (parenthesized_expression "(pcVar6[1] != '\0')" ( (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" { (if_statement "if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" if (parenthesized_expression "(pcVar6[2] == '\0')" ( (binary_expression "pcVar6[2] == '\0'" (subscript_expression "pcVar6[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                sVar4 = 2;\n                local_40 = 0;\n              }" { (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" else (compound_statement "{\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');" do (compound_statement "{\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                }" { (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar11 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar4 = ~uVar8 - 1;" (assignment_expression "sVar4 = ~uVar8 - 1" identifier = (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" ~ identifier) - number_literal)) ;) }))) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }) (else_clause "else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" else (if_statement "if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" if (parenthesized_expression "(pcVar6[1] != '\0')" ( (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" { (expression_statement "sVar4 = mbstrlen(pcVar6);" (assignment_expression "sVar4 = mbstrlen(pcVar6)" identifier = (call_expression "mbstrlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) }))) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (expression_statement "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);" (assignment_expression "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28)" identifier = (cast_expression "(char *)get_dollar_var_value(local_2c,local_28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_dollar_var_value(local_2c,local_28)" identifier (argument_list "(local_2c,local_28)" ( identifier , identifier ))))) ;) (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" { (labeled_statement "LAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" statement_identifier : (if_statement "if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (compound_statement "{\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }" { (expression_statement "__ctype_get_mb_cur_max();" (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" else (compound_statement "{\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = -0x80000000;" (assignment_expression "local_40 = -0x80000000" identifier = number_literal) ;) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" if (parenthesized_expression "(sVar4 < 2)" ( (binary_expression "sVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" { (if_statement "if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" if (parenthesized_expression "(*unaff_ESI == '\0')" ( (binary_expression "*unaff_ESI == '\0'" (pointer_expression "*unaff_ESI" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e36;" goto statement_identifier ;) })) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }" if (parenthesized_expression "((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0'))" ( (binary_expression "(*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')" (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, unaff_ESI[1] != '\0')" ( (comma_expression "sVar4 = 1, unaff_ESI[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      sVar4 = mbstrlen(unaff_ESI);\n    }" { (expression_statement "sVar4 = mbstrlen(unaff_ESI);" (assignment_expression "sVar4 = mbstrlen(unaff_ESI)" identifier = (call_expression "mbstrlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (switch_statement "switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" switch (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" { (case_statement "case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;" case number_literal : (expression_statement "iVar5 = last_asynchronous_pid;" (assignment_expression "iVar5 = last_asynchronous_pid" identifier = identifier) ;) (if_statement "if (last_asynchronous_pid == -1) goto LAB_00075e08;" if (parenthesized_expression "(last_asynchronous_pid == -1)" ( (binary_expression "last_asynchronous_pid == -1" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00075e29;" default : (goto_statement "goto LAB_00075e29;" goto statement_identifier ;)) (case_statement "case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);" do (compound_statement "{\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    }" { (expression_statement "iVar10 = iVar5 + 1;" (assignment_expression "iVar10 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[iVar10] == 0) break;" if (parenthesized_expression "((&dollar_vars)[iVar10] == 0)" ( (binary_expression "(&dollar_vars)[iVar10] == 0" (subscript_expression "(&dollar_vars)[iVar10]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar10;" (assignment_expression "iVar5 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 != 9)" ( (binary_expression "iVar10 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;" case number_literal : (expression_statement "iVar5 = dollar_dollar_pid;" (assignment_expression "iVar5 = dollar_dollar_pid" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;" case number_literal : (expression_statement "unaff_ESI = (char *)which_set_flags();" (assignment_expression "unaff_ESI = (char *)which_set_flags()" identifier = (cast_expression "(char *)which_set_flags()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "which_set_flags()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_00075e29;" goto statement_identifier ;)) (case_statement "case 0x3f:\n    iVar5 = last_command_exit_value;" case number_literal : (expression_statement "iVar5 = last_command_exit_value;" (assignment_expression "iVar5 = last_command_exit_value" identifier = identifier) ;)) })) (expression_statement "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);" (assignment_expression "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f)" identifier = (cast_expression "(char *)itos(iVar5,iVar5 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "itos(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))))) ;) (labeled_statement "LAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" statement_identifier : (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }" { (labeled_statement "LAB_00075e08:\n    sVar4 = 0;" statement_identifier : (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" else (compound_statement "{\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" if (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" { (labeled_statement "LAB_00075e36:\n      sVar4 = 1;" statement_identifier : (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;)) (if_statement "if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }" if (parenthesized_expression "((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0'))" ( (binary_expression "(unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')" (parenthesized_expression "(unaff_ESI[1] != '\0')" ( (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 2, unaff_ESI[2] != '\0')" ( (comma_expression "sVar4 = 2, unaff_ESI[2] != '\0'" (assignment_expression "sVar4 = 2" identifier = number_literal) , (binary_expression "unaff_ESI[2] != '\0'" (subscript_expression "unaff_ESI[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        sVar4 = strlen(unaff_ESI);\n      }" { (expression_statement "sVar4 = strlen(unaff_ESI);" (assignment_expression "sVar4 = strlen(unaff_ESI)" identifier = (call_expression "strlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) })) (labeled_statement "LAB_00075dd0:\n    local_40 = 0;" statement_identifier : (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;)) (expression_statement "free(unaff_ESI);" (call_expression "free(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier ))) ;) })))) (labeled_statement "LAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\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(local_40,sVar4);\n  }" { (return_statement "return CONCAT44(local_40,sVar4);" return (call_expression "CONCAT44(local_40,sVar4)" identifier (argument_list "(local_40,sVar4)" ( identifier , identifier ))) ;) }))) comment (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nintmax_t __regparm3 parameter_brace_expand_length(char *name)\n\n{\n  size_t sVar1;\n  int iVar2;\n  uint *puVar3;\n  byte bVar4;\n  char cVar5;\n  word_list **ppwVar6;\n  size_t sVar7;\n  int iVar8;\n  SHELL_VAR *pSVar9;\n  WORD_LIST *pWVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *__s;\n  uint uVar13;\n  word_list *pwVar14;\n  char *unaff_ESI;\n  ARRAY *a;\n  int in_GS_OFFSET;\n  byte bVar15;\n  arrayind_t i;\n  int local_40;\n  int len;\n  intmax_t arg_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar4 = name[1];\n  if (bVar4 == 0) {\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar4 == 0x40) || (bVar4 == 0x2a)) {\n    if (name[2] != '\0') goto LAB_00075b9a;\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')) {\nLAB_00075b9a:\n    pcVar11 = name + 1;\n    iVar8 = valid_array_reference(pcVar11,0);\n    if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar8 = legal_number(pcVar11,&arg_index);\n    if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar12 = __ctype_get_mb_cur_max();\n    if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar7 = 0;\n    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar4) {\n  case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto _L5403;\n  case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;\n  case 0x3f:\n    iVar8 = last_command_exit_value;\n  }\n  unaff_ESI = itos((longlong)iVar8);\n_L5403:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar7);\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "intmax_t __regparm3 parameter_brace_expand_length(char *name)\n\n{\n  size_t sVar1;\n  int iVar2;\n  uint *puVar3;\n  byte bVar4;\n  char cVar5;\n  word_list **ppwVar6;\n  size_t sVar7;\n  int iVar8;\n  SHELL_VAR *pSVar9;\n  WORD_LIST *pWVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *__s;\n  uint uVar13;\n  word_list *pwVar14;\n  char *unaff_ESI;\n  ARRAY *a;\n  int in_GS_OFFSET;\n  byte bVar15;\n  arrayind_t i;\n  int local_40;\n  int len;\n  intmax_t arg_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar4 = name[1];\n  if (bVar4 == 0) {\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar4 == 0x40) || (bVar4 == 0x2a)) {\n    if (name[2] != '\0') goto LAB_00075b9a;\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')) {\nLAB_00075b9a:\n    pcVar11 = name + 1;\n    iVar8 = valid_array_reference(pcVar11,0);\n    if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar8 = legal_number(pcVar11,&arg_index);\n    if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar12 = __ctype_get_mb_cur_max();\n    if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar7 = 0;\n    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar4) {\n  case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto _L5403;\n  case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;\n  case 0x3f:\n    iVar8 = last_command_exit_value;\n  }\n  unaff_ESI = itos((longlong)iVar8);\n_L5403:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar7);\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "parameter_brace_expand_length(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  uint *puVar3;\n  byte bVar4;\n  char cVar5;\n  word_list **ppwVar6;\n  size_t sVar7;\n  int iVar8;\n  SHELL_VAR *pSVar9;\n  WORD_LIST *pWVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *__s;\n  uint uVar13;\n  word_list *pwVar14;\n  char *unaff_ESI;\n  ARRAY *a;\n  int in_GS_OFFSET;\n  byte bVar15;\n  arrayind_t i;\n  int local_40;\n  int len;\n  intmax_t arg_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar4 = name[1];\n  if (bVar4 == 0) {\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar4 == 0x40) || (bVar4 == 0x2a)) {\n    if (name[2] != '\0') goto LAB_00075b9a;\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')) {\nLAB_00075b9a:\n    pcVar11 = name + 1;\n    iVar8 = valid_array_reference(pcVar11,0);\n    if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar8 = legal_number(pcVar11,&arg_index);\n    if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar12 = __ctype_get_mb_cur_max();\n    if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar7 = 0;\n    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar4) {\n  case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto _L5403;\n  case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;\n  case 0x3f:\n    iVar8 = last_command_exit_value;\n  }\n  unaff_ESI = itos((longlong)iVar8);\n_L5403:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar7);\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "word_list **ppwVar6;" type_identifier (pointer_declarator "**ppwVar6" * (pointer_declarator "*ppwVar6" * identifier)) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "SHELL_VAR *pSVar9;" type_identifier (pointer_declarator "*pSVar9" * identifier) ;) (declaration "WORD_LIST *pWVar10;" type_identifier (pointer_declarator "*pWVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "word_list *pwVar14;" type_identifier (pointer_declarator "*pwVar14" * identifier) ;) (declaration "char *unaff_ESI;" primitive_type (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "ARRAY *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "arrayind_t i;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "intmax_t arg_index;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x75adb;" (assignment_expression "uStack_14 = 0x75adb" identifier = number_literal) ;) (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) ))))) ;) (expression_statement "bVar4 = name[1];" (assignment_expression "bVar4 = name[1]" identifier = (subscript_expression "name[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar4 == 0) {\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;\n    goto LAB_00075b32;\n  }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;\n    goto LAB_00075b32;\n  }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);" do (compound_statement "{\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    }" { (expression_statement "sVar1 = sVar7 + 1;" (assignment_expression "sVar1 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar1] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar1] == 0)" ( (binary_expression "(&dollar_vars)[sVar1] == 0" (subscript_expression "(&dollar_vars)[sVar1]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar7 = sVar1;" (assignment_expression "sVar7 = sVar1" identifier = identifier) ;) }) while (parenthesized_expression "(sVar1 != 9)" ( (binary_expression "sVar1 != 9" identifier != number_literal) )) ;) (expression_statement "pwVar14 = rest_of_args;" (assignment_expression "pwVar14 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (WORD_LIST *)0x0)" ( (binary_expression "rest_of_args != (WORD_LIST *)0x0" identifier != (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" { (do_statement "do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);" do (compound_statement "{\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      }" { (expression_statement "ppwVar6 = &pwVar14->next;" (assignment_expression "ppwVar6 = &pwVar14->next" identifier = (pointer_expression "&pwVar14->next" & (field_expression "pwVar14->next" identifier -> field_identifier))) ;) (expression_statement "sVar7 = sVar7 + 1;" (assignment_expression "sVar7 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) (expression_statement "pwVar14 = *ppwVar6;" (assignment_expression "pwVar14 = *ppwVar6" identifier = (pointer_expression "*ppwVar6" * identifier)) ;) }) while (parenthesized_expression "(*ppwVar6 != (word_list *)0x0)" ( (binary_expression "*ppwVar6 != (word_list *)0x0" (pointer_expression "*ppwVar6" * identifier) != (cast_expression "(word_list *)0x0" ( (type_descriptor "word_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00075b31:\n    local_40 = (int)sVar7 >> 0x1f;" statement_identifier : (expression_statement "local_40 = (int)sVar7 >> 0x1f;" (assignment_expression "local_40 = (int)sVar7 >> 0x1f" identifier = (binary_expression "(int)sVar7 >> 0x1f" (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (if_statement "if ((bVar4 == 0x40) || (bVar4 == 0x2a)) {\n    if (name[2] != '\0') goto LAB_00075b9a;\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    goto LAB_00075b31;\n  }" if (parenthesized_expression "((bVar4 == 0x40) || (bVar4 == 0x2a))" ( (binary_expression "(bVar4 == 0x40) || (bVar4 == 0x2a)" (parenthesized_expression "(bVar4 == 0x40)" ( (binary_expression "bVar4 == 0x40" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n    if (name[2] != '\0') goto LAB_00075b9a;\n    sVar7 = 0;\n    do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    goto LAB_00075b31;\n  }" { (if_statement "if (name[2] != '\0') goto LAB_00075b9a;" if (parenthesized_expression "(name[2] != '\0')" ( (binary_expression "name[2] != '\0'" (subscript_expression "name[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00075b9a;" goto statement_identifier ;)) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    } while (sVar1 != 9);" do (compound_statement "{\n      sVar1 = sVar7 + 1;\n      if ((&dollar_vars)[sVar1] == 0) break;\n      sVar7 = sVar1;\n    }" { (expression_statement "sVar1 = sVar7 + 1;" (assignment_expression "sVar1 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar1] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar1] == 0)" ( (binary_expression "(&dollar_vars)[sVar1] == 0" (subscript_expression "(&dollar_vars)[sVar1]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar7 = sVar1;" (assignment_expression "sVar7 = sVar1" identifier = identifier) ;) }) while (parenthesized_expression "(sVar1 != 9)" ( (binary_expression "sVar1 != 9" identifier != number_literal) )) ;) (expression_statement "pwVar14 = rest_of_args;" (assignment_expression "pwVar14 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (WORD_LIST *)0x0)" ( (binary_expression "rest_of_args != (WORD_LIST *)0x0" identifier != (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" { (do_statement "do {\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);" do (compound_statement "{\n        ppwVar6 = &pwVar14->next;\n        sVar7 = sVar7 + 1;\n        pwVar14 = *ppwVar6;\n      }" { (expression_statement "ppwVar6 = &pwVar14->next;" (assignment_expression "ppwVar6 = &pwVar14->next" identifier = (pointer_expression "&pwVar14->next" & (field_expression "pwVar14->next" identifier -> field_identifier))) ;) (expression_statement "sVar7 = sVar7 + 1;" (assignment_expression "sVar7 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) (expression_statement "pwVar14 = *ppwVar6;" (assignment_expression "pwVar14 = *ppwVar6" identifier = (pointer_expression "*ppwVar6" * identifier)) ;) }) while (parenthesized_expression "(*ppwVar6 != (word_list *)0x0)" ( (binary_expression "*ppwVar6 != (word_list *)0x0" (pointer_expression "*ppwVar6" * identifier) != (cast_expression "(word_list *)0x0" ( (type_descriptor "word_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (if_statement "if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')) {\nLAB_00075b9a:\n    pcVar11 = name + 1;\n    iVar8 = valid_array_reference(pcVar11,0);\n    if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar8 = legal_number(pcVar11,&arg_index);\n    if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar12 = __ctype_get_mb_cur_max();\n    if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar7 = 0;\n    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" if (parenthesized_expression "(((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0'))" ( (binary_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0) || (name[2] != '\0')" (parenthesized_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0)" ( (binary_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8)" ( (binary_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1) & 8" (pointer_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1)" * (cast_expression "(byte *)((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sh_syntaxtab + (uint)bVar4 * 4 + 1)" ( (binary_expression "(int)&sh_syntaxtab + (uint)bVar4 * 4 + 1" (binary_expression "(int)&sh_syntaxtab + (uint)bVar4 * 4" (cast_expression "(int)&sh_syntaxtab" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sh_syntaxtab" & identifier)) + (binary_expression "(uint)bVar4 * 4" (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(name[2] != '\0')" ( (binary_expression "name[2] != '\0'" (subscript_expression "name[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00075b9a:\n    pcVar11 = name + 1;\n    iVar8 = valid_array_reference(pcVar11,0);\n    if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar8 = legal_number(pcVar11,&arg_index);\n    if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar12 = __ctype_get_mb_cur_max();\n    if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar7 = 0;\n    if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" { (labeled_statement "LAB_00075b9a:\n    pcVar11 = name + 1;" statement_identifier : (expression_statement "pcVar11 = name + 1;" (assignment_expression "pcVar11 = name + 1" identifier = (binary_expression "name + 1" identifier + number_literal)) ;)) (expression_statement "iVar8 = valid_array_reference(pcVar11,0);" (assignment_expression "iVar8 = valid_array_reference(pcVar11,0)" identifier = (call_expression "valid_array_reference(pcVar11,0)" identifier (argument_list "(pcVar11,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);\n      if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }\n      cVar5 = ((char *)arg_index)[-1];\n      ((char *)arg_index)[-1] = '\0';\n      last_command_exit_value = 1;\n      arg_index._0_4_ = (char *)arg_index + -1;\n      err_unboundvar(pcVar11);\n      *(char *)arg_index = cVar5;\n      sVar7 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" { (expression_statement "pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len);" (assignment_expression "pSVar9 = array_variable_part(pcVar11,0,(char **)&arg_index,&len)" identifier = (call_expression "array_variable_part(pcVar11,0,(char **)&arg_index,&len)" identifier (argument_list "(pcVar11,0,(char **)&arg_index,&len)" ( identifier , number_literal , (cast_expression "(char **)&arg_index" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&arg_index" & identifier)) , (pointer_expression "&len" & identifier) )))) ;) (if_statement "if ((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0))" ( (binary_expression "(pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)" (parenthesized_expression "(pSVar9 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar9 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)" ( (comma_expression "uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0" (assignment_expression "uVar13 = pSVar9->attributes" identifier = (field_expression "pSVar9->attributes" identifier -> field_identifier)) , (binary_expression "(uVar13 & 0x1000) != 0" (parenthesized_expression "(uVar13 & 0x1000)" ( (binary_expression "uVar13 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }" { (if_statement "if (unbound_vars_is_error == 0) goto LAB_00075e08;" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) }) (else_clause "else if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }" else (if_statement "if (((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "(((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0))" ( (binary_expression "((uVar13 & 0x44) != 0) || (unbound_vars_is_error == 0)" (parenthesized_expression "((uVar13 & 0x44) != 0)" ( (binary_expression "(uVar13 & 0x44) != 0" (parenthesized_expression "(uVar13 & 0x44)" ( (binary_expression "uVar13 & 0x44" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) ))) )) (compound_statement "{\n        a = (ARRAY *)0x0;\n        if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }\n        cVar5 = *(char *)arg_index;\n        if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        i = array_expand_index(pSVar9,(char *)arg_index,len,0);\n        if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }\nLAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();\n        local_40 = 0;\n        sVar7 = 0;\n        if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }\n        goto LAB_00075b32;\n      }" { (expression_statement "a = (ARRAY *)0x0;" (assignment_expression "a = (ARRAY *)0x0" identifier = (cast_expression "(ARRAY *)0x0" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uVar13 & 4) != 0) {\n          a = (ARRAY *)pSVar9->value;\n        }" if (parenthesized_expression "((uVar13 & 4) != 0)" ( (binary_expression "(uVar13 & 4) != 0" (parenthesized_expression "(uVar13 & 4)" ( (binary_expression "uVar13 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          a = (ARRAY *)pSVar9->value;\n        }" { (expression_statement "a = (ARRAY *)pSVar9->value;" (assignment_expression "a = (ARRAY *)pSVar9->value" identifier = (cast_expression "(ARRAY *)pSVar9->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar9->value" identifier -> field_identifier))) ;) })) (expression_statement "cVar5 = *(char *)arg_index;" (assignment_expression "cVar5 = *(char *)arg_index" identifier = (pointer_expression "*(char *)arg_index" * (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((uVar13 & 0x40) != 0) {\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" if (parenthesized_expression "((uVar13 & 0x40) != 0)" ( (binary_expression "(uVar13 & 0x40) != 0" (parenthesized_expression "(uVar13 & 0x40)" ( (binary_expression "uVar13 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" { (if_statement "if ((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')) {\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" if (parenthesized_expression "((cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']'))" ( (binary_expression "(cVar5 != '*' && cVar5 != '@') || (((char *)arg_index)[1] != ']')" (parenthesized_expression "(cVar5 != '*' && cVar5 != '@')" ( (binary_expression "cVar5 != '*' && cVar5 != '@'" (binary_expression "cVar5 != '*'" identifier != (char_literal "'*'" ' character ')) && (binary_expression "cVar5 != '@'" identifier != (char_literal "'@'" ' character '))) )) || (parenthesized_expression "(((char *)arg_index)[1] != ']')" ( (binary_expression "((char *)arg_index)[1] != ']'" (subscript_expression "((char *)arg_index)[1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n            ((char *)arg_index)[len + -1] = '\0';\n            if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" { (expression_statement "((char *)arg_index)[len + -1] = '\0';" (assignment_expression "((char *)arg_index)[len + -1] = '\0'" (subscript_expression "((char *)arg_index)[len + -1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "len + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((char *)arg_index == (char *)0x0) {\n              *(undefined1 *)(len + -1) = 0x5d;\n            }\n            else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "((char *)arg_index == (char *)0x0)" ( (binary_expression "(char *)arg_index == (char *)0x0" (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)(len + -1) = 0x5d;\n            }" { (expression_statement "*(undefined1 *)(len + -1) = 0x5d;" (assignment_expression "*(undefined1 *)(len + -1) = 0x5d" (pointer_expression "*(undefined1 *)(len + -1)" * (cast_expression "(undefined1 *)(len + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(len + -1)" ( (binary_expression "len + -1" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (if_statement "if (*(char *)arg_index == '\0') {\n              ((char *)arg_index)[len + -1] = ']';\n            }\n            else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "(*(char *)arg_index == '\0')" ( (binary_expression "*(char *)arg_index == '\0'" (pointer_expression "*(char *)arg_index" * (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              ((char *)arg_index)[len + -1] = ']';\n            }" { (expression_statement "((char *)arg_index)[len + -1] = ']';" (assignment_expression "((char *)arg_index)[len + -1] = ']'" (subscript_expression "((char *)arg_index)[len + -1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "len + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (compound_statement "{\n              pWVar10 = expand_string_assignment((char *)arg_index,0);\n              if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }\n            }" { (expression_statement "pWVar10 = expand_string_assignment((char *)arg_index,0);" (assignment_expression "pWVar10 = expand_string_assignment((char *)arg_index,0)" identifier = (call_expression "expand_string_assignment((char *)arg_index,0)" identifier (argument_list "((char *)arg_index,0)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pWVar10 == (WORD_LIST *)0x0) {\n                ((char *)arg_index)[len + -1] = ']';\n              }\n              else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }" if (parenthesized_expression "(pWVar10 == (WORD_LIST *)0x0)" ( (binary_expression "pWVar10 == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                ((char *)arg_index)[len + -1] = ']';\n              }" { (expression_statement "((char *)arg_index)[len + -1] = ']';" (assignment_expression "((char *)arg_index)[len + -1] = ']'" (subscript_expression "((char *)arg_index)[len + -1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "len + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }" else (compound_statement "{\n                pcVar11 = string_list_internal(pWVar10," ");\n                dispose_words(pWVar10);\n                ((char *)arg_index)[len + -1] = ']';\n                if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }\n              }" { (expression_statement "pcVar11 = string_list_internal(pWVar10," ");" (assignment_expression "pcVar11 = string_list_internal(pWVar10," ")" identifier = (call_expression "string_list_internal(pWVar10," ")" identifier (argument_list "(pWVar10," ")" ( identifier , (string_literal "" "" " string_content ") )))) ;) (expression_statement "dispose_words(pWVar10);" (call_expression "dispose_words(pWVar10)" identifier (argument_list "(pWVar10)" ( identifier ))) ;) (expression_statement "((char *)arg_index)[len + -1] = ']';" (assignment_expression "((char *)arg_index)[len + -1] = ']'" (subscript_expression "((char *)arg_index)[len + -1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "len + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar11 != (char *)0x0) {\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }" if (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);\n                  free(pcVar11);\n                  goto LAB_00075cba;\n                }" { (if_statement "if (*pcVar11 == '\0') {\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" if (parenthesized_expression "(*pcVar11 == '\0')" ( (binary_expression "*pcVar11 == '\0'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    err_badarraysub((char *)arg_index);\n                    free(pcVar11);\n                    sVar7 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" { (expression_statement "err_badarraysub((char *)arg_index);" (call_expression "err_badarraysub((char *)arg_index)" identifier (argument_list "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (expression_statement "sVar7 = 0xffffffff;" (assignment_expression "sVar7 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11);" (assignment_expression "arg_index._0_4_ = assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11)" (field_expression "arg_index._0_4_" identifier . field_identifier) = (call_expression "assoc_reference((HASH_TABLE *)pSVar9->value,pcVar11)" identifier (argument_list "((HASH_TABLE *)pSVar9->value,pcVar11)" ( (cast_expression "(HASH_TABLE *)pSVar9->value" ( (type_descriptor "HASH_TABLE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar9->value" identifier -> field_identifier)) , identifier )))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (goto_statement "goto LAB_00075cba;" goto statement_identifier ;) })) }))) }))))) (goto_statement "goto LAB_000761ab;" goto statement_identifier ;) })) (if_statement "if (pSVar9->value != (char *)0x0) {\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }" if (parenthesized_expression "(pSVar9->value != (char *)0x0)" ( (binary_expression "pSVar9->value != (char *)0x0" (field_expression "pSVar9->value" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar7 = *(size_t *)(pSVar9->value + 8);\n            goto LAB_00075b31;\n          }" { (expression_statement "sVar7 = *(size_t *)(pSVar9->value + 8);" (assignment_expression "sVar7 = *(size_t *)(pSVar9->value + 8)" identifier = (pointer_expression "*(size_t *)(pSVar9->value + 8)" * (cast_expression "(size_t *)(pSVar9->value + 8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar9->value + 8)" ( (binary_expression "pSVar9->value + 8" (field_expression "pSVar9->value" identifier -> field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (if_statement "if ((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')) {\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']'))" ( (binary_expression "(cVar5 == '*' || cVar5 == '@') && (((char *)arg_index)[1] == ']')" (parenthesized_expression "(cVar5 == '*' || cVar5 == '@')" ( (binary_expression "cVar5 == '*' || cVar5 == '@'" (binary_expression "cVar5 == '*'" identifier == (char_literal "'*'" ' character ')) || (binary_expression "cVar5 == '@'" identifier == (char_literal "'@'" ' character '))) )) && (parenthesized_expression "(((char *)arg_index)[1] == ']')" ( (binary_expression "((char *)arg_index)[1] == ']'" (subscript_expression "((char *)arg_index)[1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n          if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" { (if_statement "if ((uVar13 & 4) == 0) {\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }\n          else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }" if (parenthesized_expression "((uVar13 & 4) == 0)" ( (binary_expression "(uVar13 & 4) == 0" (parenthesized_expression "(uVar13 & 4)" ( (binary_expression "uVar13 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            sVar7 = (size_t)(pSVar9->value != (char *)0x0);\n            local_40 = 0;\n          }" { (expression_statement "sVar7 = (size_t)(pSVar9->value != (char *)0x0);" (assignment_expression "sVar7 = (size_t)(pSVar9->value != (char *)0x0)" identifier = (cast_expression "(size_t)(pSVar9->value != (char *)0x0)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pSVar9->value != (char *)0x0)" ( (binary_expression "pSVar9->value != (char *)0x0" (field_expression "pSVar9->value" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }" else (compound_statement "{\n            sVar7 = 0;\n            local_40 = 0;\n            if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }\n          }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (a != (ARRAY *)0x0) {\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }" if (parenthesized_expression "(a != (ARRAY *)0x0)" ( (binary_expression "a != (ARRAY *)0x0" identifier != (cast_expression "(ARRAY *)0x0" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              sVar7 = a->num_elements;\n              local_40 = (int)sVar7 >> 0x1f;\n            }" { (expression_statement "sVar7 = a->num_elements;" (assignment_expression "sVar7 = a->num_elements" identifier = (field_expression "a->num_elements" identifier -> field_identifier)) ;) (expression_statement "local_40 = (int)sVar7 >> 0x1f;" (assignment_expression "local_40 = (int)sVar7 >> 0x1f" identifier = (binary_expression "(int)sVar7 >> 0x1f" (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) }))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "i = array_expand_index(pSVar9,(char *)arg_index,len,0);" (assignment_expression "i = array_expand_index(pSVar9,(char *)arg_index,len,0)" identifier = (call_expression "array_expand_index(pSVar9,(char *)arg_index,len,0)" identifier (argument_list "(pSVar9,(char *)arg_index,len,0)" ( identifier , (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if ((pSVar9->attributes & 4) == 0) {\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }\n        else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }" if (parenthesized_expression "((pSVar9->attributes & 4) == 0)" ( (binary_expression "(pSVar9->attributes & 4) == 0" (parenthesized_expression "(pSVar9->attributes & 4)" ( (binary_expression "pSVar9->attributes & 4" (field_expression "pSVar9->attributes" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (i < 0) goto LAB_000761ab;\n          arg_index._0_4_ = (char *)0x0;\n          if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }\n        }" { (if_statement "if (i < 0) goto LAB_000761ab;" if (parenthesized_expression "(i < 0)" ( (binary_expression "i < 0" identifier < number_literal) )) (goto_statement "goto LAB_000761ab;" goto statement_identifier ;)) (expression_statement "arg_index._0_4_ = (char *)0x0;" (assignment_expression "arg_index._0_4_ = (char *)0x0" (field_expression "arg_index._0_4_" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (i == 0) {\n            arg_index._0_4_ = pSVar9->value;\n          }" if (parenthesized_expression "(i == 0)" ( (binary_expression "i == 0" identifier == number_literal) )) (compound_statement "{\n            arg_index._0_4_ = pSVar9->value;\n          }" { (expression_statement "arg_index._0_4_ = pSVar9->value;" (assignment_expression "arg_index._0_4_ = pSVar9->value" (field_expression "arg_index._0_4_" identifier . field_identifier) = (field_expression "pSVar9->value" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }" else (compound_statement "{\n          if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }\n          arg_index._0_4_ = array_reference(a,i);\n        }" { (if_statement "if ((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)) {\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "((i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0))" ( (binary_expression "(i < 0) &&\n             (puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)" (parenthesized_expression "(i < 0)" ( (binary_expression "i < 0" identifier < number_literal) )) && (parenthesized_expression "(puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0)" ( (comma_expression "puVar3 = (uint *)(pSVar9->value + 4), uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0" (assignment_expression "puVar3 = (uint *)(pSVar9->value + 4)" identifier = (cast_expression "(uint *)(pSVar9->value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar9->value + 4)" ( (binary_expression "pSVar9->value + 4" (field_expression "pSVar9->value" identifier -> field_identifier) + number_literal) )))) , (comma_expression "uVar13 = (uint)i + *puVar3,\n             iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0" (assignment_expression "uVar13 = (uint)i + *puVar3" identifier = (binary_expression "(uint)i + *puVar3" (cast_expression "(uint)i" ( (type_descriptor "uint" type_identifier) ) identifier) + (pointer_expression "*puVar3" * identifier))) , (comma_expression "iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13),\n             i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0" (assignment_expression "iVar8 = (int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13)" identifier = (binary_expression "(int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3) + (uint)(0xfffffffe < uVar13)" (binary_expression "(int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8) +\n                     (uint)CARRY4((uint)i,*puVar3)" (binary_expression "(int)((ulonglong)i >> 0x20) + *(int *)(pSVar9->value + 8)" (cast_expression "(int)((ulonglong)i >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)i >> 0x20)" ( (binary_expression "(ulonglong)i >> 0x20" (cast_expression "(ulonglong)i" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(pSVar9->value + 8)" * (cast_expression "(int *)(pSVar9->value + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar9->value + 8)" ( (binary_expression "pSVar9->value + 8" (field_expression "pSVar9->value" identifier -> field_identifier) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)i,*puVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)i,*puVar3)" identifier (argument_list "((uint)i,*puVar3)" ( (cast_expression "(uint)i" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*puVar3" * identifier) ))))) + (call_expression "(uint)(0xfffffffe < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar13)" ( (binary_expression "0xfffffffe < uVar13" number_literal < identifier) ))))) , (comma_expression "i = CONCAT44(iVar8,uVar13 + 1), iVar8 < 0" (assignment_expression "i = CONCAT44(iVar8,uVar13 + 1)" identifier = (call_expression "CONCAT44(iVar8,uVar13 + 1)" identifier (argument_list "(iVar8,uVar13 + 1)" ( identifier , (binary_expression "uVar13 + 1" identifier + number_literal) )))) , (binary_expression "iVar8 < 0" identifier < number_literal))))) ))) )) (compound_statement "{\nLAB_000761ab:\n            err_badarraysub((char *)arg_index);\n            sVar7 = 0xffffffff;\n            local_40 = -1;\n            goto LAB_00075b32;\n          }" { (labeled_statement "LAB_000761ab:\n            err_badarraysub((char *)arg_index);" statement_identifier : (expression_statement "err_badarraysub((char *)arg_index);" (call_expression "err_badarraysub((char *)arg_index)" identifier (argument_list "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "sVar7 = 0xffffffff;" (assignment_expression "sVar7 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "arg_index._0_4_ = array_reference(a,i);" (assignment_expression "arg_index._0_4_ = array_reference(a,i)" (field_expression "arg_index._0_4_" identifier . field_identifier) = (call_expression "array_reference(a,i)" identifier (argument_list "(a,i)" ( identifier , identifier )))) ;) }))) (labeled_statement "LAB_00075cba:\n        sVar12 = __ctype_get_mb_cur_max();" statement_identifier : (expression_statement "sVar12 = __ctype_get_mb_cur_max();" (assignment_expression "sVar12 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (if_statement "if (sVar12 < 2) {\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }\n        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }" if (parenthesized_expression "(sVar12 < 2)" ( (binary_expression "sVar12 < 2" identifier < number_literal) )) (compound_statement "{\n          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }\n        }" { (if_statement "if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0'))" ( (binary_expression "((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')" (parenthesized_expression "((char *)arg_index != (char *)0x0)" ( (binary_expression "(char *)arg_index != (char *)0x0" (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)arg_index != '\0')" ( (binary_expression "*(char *)arg_index != '\0'" (pointer_expression "*(char *)arg_index" * (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            local_40 = 0;\n            sVar7 = 1;\n            if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 1;" (assignment_expression "sVar7 = 1" identifier = number_literal) ;) (if_statement "if (((char *)arg_index)[1] != '\0') {\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }" if (parenthesized_expression "(((char *)arg_index)[1] != '\0')" ( (binary_expression "((char *)arg_index)[1] != '\0'" (subscript_expression "((char *)arg_index)[1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_40 = 0;\n              sVar7 = 2;\n              if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 2;" (assignment_expression "sVar7 = 2" identifier = number_literal) ;) (if_statement "if (((char *)arg_index)[2] != '\0') {\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }" if (parenthesized_expression "(((char *)arg_index)[2] != '\0')" ( (binary_expression "((char *)arg_index)[2] != '\0'" (subscript_expression "((char *)arg_index)[2]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                sVar7 = strlen((char *)arg_index);\n                local_40 = 0;\n              }" { (expression_statement "sVar7 = strlen((char *)arg_index);" (assignment_expression "sVar7 = strlen((char *)arg_index)" identifier = (call_expression "strlen((char *)arg_index)" identifier (argument_list "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) })) })) }) (else_clause "else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }" else (if_statement "if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }" if (parenthesized_expression "(((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0'))" ( (binary_expression "((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')" (parenthesized_expression "((char *)arg_index != (char *)0x0)" ( (binary_expression "(char *)arg_index != (char *)0x0" (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)arg_index != '\0')" ( (binary_expression "*(char *)arg_index != '\0'" (pointer_expression "*(char *)arg_index" * (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          local_40 = 0;\n          sVar7 = 1;\n          if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }\n        }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 1;" (assignment_expression "sVar7 = 1" identifier = number_literal) ;) (if_statement "if (((char *)arg_index)[1] != '\0') {\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }" if (parenthesized_expression "(((char *)arg_index)[1] != '\0')" ( (binary_expression "((char *)arg_index)[1] != '\0'" (subscript_expression "((char *)arg_index)[1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            sVar7 = mbstrlen((char *)arg_index);\n            local_40 = (int)sVar7 >> 0x1f;\n          }" { (expression_statement "sVar7 = mbstrlen((char *)arg_index);" (assignment_expression "sVar7 = mbstrlen((char *)arg_index)" identifier = (call_expression "mbstrlen((char *)arg_index)" identifier (argument_list "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_40 = (int)sVar7 >> 0x1f;" (assignment_expression "local_40 = (int)sVar7 >> 0x1f" identifier = (binary_expression "(int)sVar7 >> 0x1f" (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) (expression_statement "cVar5 = ((char *)arg_index)[-1];" (assignment_expression "cVar5 = ((char *)arg_index)[-1]" identifier = (subscript_expression "((char *)arg_index)[-1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "((char *)arg_index)[-1] = '\0';" (assignment_expression "((char *)arg_index)[-1] = '\0'" (subscript_expression "((char *)arg_index)[-1]" (parenthesized_expression "((char *)arg_index)" ( (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (expression_statement "arg_index._0_4_ = (char *)arg_index + -1;" (assignment_expression "arg_index._0_4_ = (char *)arg_index + -1" (field_expression "arg_index._0_4_" identifier . field_identifier) = (binary_expression "(char *)arg_index + -1" (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (expression_statement "err_unboundvar(pcVar11);" (call_expression "err_unboundvar(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (expression_statement "*(char *)arg_index = cVar5;" (assignment_expression "*(char *)arg_index = cVar5" (pointer_expression "*(char *)arg_index" * (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "sVar7 = 0xffffffff;" (assignment_expression "sVar7 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "iVar8 = legal_number(pcVar11,&arg_index);" (assignment_expression "iVar8 = legal_number(pcVar11,&arg_index)" identifier = (call_expression "legal_number(pcVar11,&arg_index)" identifier (argument_list "(pcVar11,&arg_index)" ( identifier , (pointer_expression "&arg_index" & identifier) )))) ;) (if_statement "if (iVar8 == 0) {\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pSVar9 = find_variable(pcVar11);\n      if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" { (expression_statement "pSVar9 = find_variable(pcVar11);" (assignment_expression "pSVar9 = find_variable(pcVar11)" identifier = (call_expression "find_variable(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (if_statement "if (((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)) {\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" if (parenthesized_expression "(((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0))" ( (binary_expression "((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)) ||\n         ((uVar13 & 0x44) == 0)" (parenthesized_expression "((pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0))" ( (binary_expression "(pSVar9 == (SHELL_VAR *)0x0) || (uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)" (parenthesized_expression "(pSVar9 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar9 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0)" ( (comma_expression "uVar13 = pSVar9->attributes, (uVar13 & 0x1000) != 0" (assignment_expression "uVar13 = pSVar9->attributes" identifier = (field_expression "pSVar9->attributes" identifier -> field_identifier)) , (binary_expression "(uVar13 & 0x1000) != 0" (parenthesized_expression "(uVar13 & 0x1000)" ( (binary_expression "uVar13 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) || (parenthesized_expression "((uVar13 & 0x44) == 0)" ( (binary_expression "(uVar13 & 0x44) == 0" (parenthesized_expression "(uVar13 & 0x44)" ( (binary_expression "uVar13 & 0x44" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        sVar12 = strlen(name);\n        pcVar11 = (char *)xmalloc(sVar12 + 1);\n        pcVar11 = strcpy(pcVar11,name);\n        *pcVar11 = '$';\n        pWVar10 = expand_string(pcVar11,1);\n        if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }" { (expression_statement "sVar12 = strlen(name);" (assignment_expression "sVar12 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar12 + 1);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar12 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 1)" identifier (argument_list "(sVar12 + 1)" ( (binary_expression "sVar12 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = strcpy(pcVar11,name);" (assignment_expression "pcVar11 = strcpy(pcVar11,name)" identifier = (call_expression "strcpy(pcVar11,name)" identifier (argument_list "(pcVar11,name)" ( identifier , identifier )))) ;) (expression_statement "*pcVar11 = '$';" (assignment_expression "*pcVar11 = '$'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'$'" ' character ')) ;) (expression_statement "pWVar10 = expand_string(pcVar11,1);" (assignment_expression "pWVar10 = expand_string(pcVar11,1)" identifier = (call_expression "expand_string(pcVar11,1)" identifier (argument_list "(pcVar11,1)" ( identifier , number_literal )))) ;) (if_statement "if (pWVar10 == (WORD_LIST *)0x0) {\n          free(pcVar11);\n        }\n        else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" if (parenthesized_expression "(pWVar10 == (WORD_LIST *)0x0)" ( (binary_expression "pWVar10 == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pcVar11);\n        }" { (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) }) (else_clause "else {\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" else (compound_statement "{\n          __s = string_list_internal(pWVar10," ");\n          free(pcVar11);\n          dispose_words(pWVar10);\n          if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" { (expression_statement "__s = string_list_internal(pWVar10," ");" (assignment_expression "__s = string_list_internal(pWVar10," ")" identifier = (call_expression "string_list_internal(pWVar10," ")" identifier (argument_list "(pWVar10," ")" ( identifier , (string_literal "" "" " string_content ") )))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (expression_statement "dispose_words(pWVar10);" (call_expression "dispose_words(pWVar10)" identifier (argument_list "(pWVar10)" ( identifier ))) ;) (if_statement "if (__s != (char *)0x0) {\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar12 = __ctype_get_mb_cur_max();\n            sVar7 = 0;\n            if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" { (expression_statement "sVar12 = __ctype_get_mb_cur_max();" (assignment_expression "sVar12 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (if_statement "if (sVar12 < 2) {\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }" if (parenthesized_expression "(sVar12 < 2)" ( (binary_expression "sVar12 < 2" identifier < number_literal) )) (compound_statement "{\n              if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }\n            }" { (if_statement "if (((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')) {\n                sVar7 = strlen(__s);\n              }" if (parenthesized_expression "(((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0'))" ( (binary_expression "((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) && (sVar7 = 2, __s[2] != '\0')" (parenthesized_expression "((*__s != '\0') && (sVar7 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar7 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar7 = 1, __s[1] != '\0')" ( (comma_expression "sVar7 = 1, __s[1] != '\0'" (assignment_expression "sVar7 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(sVar7 = 2, __s[2] != '\0')" ( (comma_expression "sVar7 = 2, __s[2] != '\0'" (assignment_expression "sVar7 = 2" identifier = number_literal) , (binary_expression "__s[2] != '\0'" (subscript_expression "__s[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                sVar7 = strlen(__s);\n              }" { (expression_statement "sVar7 = strlen(__s);" (assignment_expression "sVar7 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })) }) (else_clause "else if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }" else (if_statement "if ((*__s != '\0') && (sVar7 = 1, __s[1] != '\0')) {\n              sVar7 = mbstrlen(__s);\n            }" if (parenthesized_expression "((*__s != '\0') && (sVar7 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar7 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar7 = 1, __s[1] != '\0')" ( (comma_expression "sVar7 = 1, __s[1] != '\0'" (assignment_expression "sVar7 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n              sVar7 = mbstrlen(__s);\n            }" { (expression_statement "sVar7 = mbstrlen(__s);" (assignment_expression "sVar7 = mbstrlen(__s)" identifier = (call_expression "mbstrlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })))) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" else (compound_statement "{\n        if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }\n        if (pcVar11 == (char *)0x0) goto LAB_00075f00;\n        sVar12 = __ctype_get_mb_cur_max();\n        if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" { (if_statement "if ((uVar13 & 0x40) == 0) {\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }\n        else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }" if (parenthesized_expression "((uVar13 & 0x40) == 0)" ( (binary_expression "(uVar13 & 0x40) == 0" (parenthesized_expression "(uVar13 & 0x40)" ( (binary_expression "uVar13 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar11 = array_reference((ARRAY *)pSVar9->value,0);\n        }" { (expression_statement "pcVar11 = array_reference((ARRAY *)pSVar9->value,0);" (assignment_expression "pcVar11 = array_reference((ARRAY *)pSVar9->value,0)" identifier = (call_expression "array_reference((ARRAY *)pSVar9->value,0)" identifier (argument_list "((ARRAY *)pSVar9->value,0)" ( (cast_expression "(ARRAY *)pSVar9->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar9->value" identifier -> field_identifier)) , number_literal )))) ;) }) (else_clause "else {\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }" else (compound_statement "{\n          pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");\n        }" { (expression_statement "pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0");" (assignment_expression "pcVar11 = assoc_reference((HASH_TABLE *)pSVar9->value,"0")" identifier = (call_expression "assoc_reference((HASH_TABLE *)pSVar9->value,"0")" identifier (argument_list "((HASH_TABLE *)pSVar9->value,"0")" ( (cast_expression "(HASH_TABLE *)pSVar9->value" ( (type_descriptor "HASH_TABLE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar9->value" identifier -> field_identifier)) , (string_literal ""0"" " string_content ") )))) ;) }))) (if_statement "if (pcVar11 == (char *)0x0) goto LAB_00075f00;" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00075f00;" goto statement_identifier ;)) (expression_statement "sVar12 = __ctype_get_mb_cur_max();" (assignment_expression "sVar12 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar12 < 2) {\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(sVar12 < 2)" ( (binary_expression "sVar12 < 2" identifier < number_literal) )) (compound_statement "{\n          if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }" { (if_statement "if (*pcVar11 != '\0') {\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_40 = 0;\n            sVar7 = 1;\n            if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 1;" (assignment_expression "sVar7 = 1" identifier = number_literal) ;) (if_statement "if (pcVar11[1] != '\0') {\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }" if (parenthesized_expression "(pcVar11[1] != '\0')" ( (binary_expression "pcVar11[1] != '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }\n            }" { (if_statement "if (pcVar11[2] == '\0') {\n                sVar7 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }" if (parenthesized_expression "(pcVar11[2] == '\0')" ( (binary_expression "pcVar11[2] == '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                sVar7 = 2;\n                local_40 = 0;\n              }" { (expression_statement "sVar7 = 2;" (assignment_expression "sVar7 = 2" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }" else (compound_statement "{\n                uVar13 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');\n                sVar7 = ~uVar13 - 1;\n              }" { (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                } while (cVar5 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar5 = *pcVar11;\n                  pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar5 = *pcVar11;" (assignment_expression "cVar5 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar7 = ~uVar13 - 1;" (assignment_expression "sVar7 = ~uVar13 - 1" identifier = (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) ;) }))) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }) (else_clause "else if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" else (if_statement "if (*pcVar11 != '\0') {\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40 = 0;\n          sVar7 = 1;\n          if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar7 = 1;" (assignment_expression "sVar7 = 1" identifier = number_literal) ;) (if_statement "if (pcVar11[1] != '\0') {\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }" if (parenthesized_expression "(pcVar11[1] != '\0')" ( (binary_expression "pcVar11[1] != '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            sVar7 = mbstrlen(pcVar11);\n            local_40 = 0;\n          }" { (expression_statement "sVar7 = mbstrlen(pcVar11);" (assignment_expression "sVar7 = mbstrlen(pcVar11)" identifier = (call_expression "mbstrlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) }))) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (expression_statement "unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index));" (assignment_expression "unaff_ESI = get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index))" identifier = (call_expression "get_dollar_var_value(CONCAT44(arg_index._4_4_,(char *)arg_index))" identifier (argument_list "(CONCAT44(arg_index._4_4_,(char *)arg_index))" ( (call_expression "CONCAT44(arg_index._4_4_,(char *)arg_index)" identifier (argument_list "(arg_index._4_4_,(char *)arg_index)" ( (field_expression "arg_index._4_4_" identifier . field_identifier) , (cast_expression "(char *)arg_index" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) )))) ;) (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" { (labeled_statement "LAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }" statement_identifier : (if_statement "if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (compound_statement "{\n        __ctype_get_mb_cur_max();\n        sVar7 = 0;\n        local_40 = 0;\n      }" { (expression_statement "__ctype_get_mb_cur_max();" (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }" else (compound_statement "{\n        sVar7 = 0;\n        local_40 = -0x80000000;\n      }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (expression_statement "local_40 = -0x80000000;" (assignment_expression "local_40 = -0x80000000" identifier = number_literal) ;) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "sVar12 = __ctype_get_mb_cur_max();" (assignment_expression "sVar12 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar12 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" if (parenthesized_expression "(sVar12 < 2)" ( (binary_expression "sVar12 < 2" identifier < number_literal) )) (compound_statement "{\n      if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" { (if_statement "if (*unaff_ESI == '\0') {\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }" if (parenthesized_expression "(*unaff_ESI == '\0')" ( (binary_expression "*unaff_ESI == '\0'" (pointer_expression "*unaff_ESI" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        sVar7 = 0;\n        goto LAB_00075dd0;\n      }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e36;" goto statement_identifier ;) })) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (if_statement "if ((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')) {\n      sVar7 = mbstrlen(unaff_ESI);\n    }" if (parenthesized_expression "((*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0'))" ( (binary_expression "(*unaff_ESI != '\0') && (sVar7 = 1, unaff_ESI[1] != '\0')" (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar7 = 1, unaff_ESI[1] != '\0')" ( (comma_expression "sVar7 = 1, unaff_ESI[1] != '\0'" (assignment_expression "sVar7 = 1" identifier = number_literal) , (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      sVar7 = mbstrlen(unaff_ESI);\n    }" { (expression_statement "sVar7 = mbstrlen(unaff_ESI);" (assignment_expression "sVar7 = mbstrlen(unaff_ESI)" identifier = (call_expression "mbstrlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (switch_statement "switch(bVar4) {\n  case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto _L5403;\n  case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;\n  case 0x3f:\n    iVar8 = last_command_exit_value;\n  }" switch (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n  case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto _L5403;\n  case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;\n  case 0x3f:\n    iVar8 = last_command_exit_value;\n  }" { (case_statement "case 0x21:\n    iVar8 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;" case number_literal : (expression_statement "iVar8 = last_asynchronous_pid;" (assignment_expression "iVar8 = last_asynchronous_pid" identifier = identifier) ;) (if_statement "if (last_asynchronous_pid == -1) goto LAB_00075e08;" if (parenthesized_expression "(last_asynchronous_pid == -1)" ( (binary_expression "last_asynchronous_pid == -1" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "default:\n    goto _L5403;" default : (goto_statement "goto _L5403;" goto statement_identifier ;)) (case_statement "case 0x23:\n    iVar8 = 0;\n    do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);\n    pwVar14 = rest_of_args;\n    if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }\n    break;" case number_literal : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    } while (iVar2 != 9);" do (compound_statement "{\n      iVar2 = iVar8 + 1;\n      if ((&dollar_vars)[iVar2] == 0) break;\n      iVar8 = iVar2;\n    }" { (expression_statement "iVar2 = iVar8 + 1;" (assignment_expression "iVar2 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[iVar2] == 0) break;" if (parenthesized_expression "((&dollar_vars)[iVar2] == 0)" ( (binary_expression "(&dollar_vars)[iVar2] == 0" (subscript_expression "(&dollar_vars)[iVar2]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar2;" (assignment_expression "iVar8 = iVar2" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != 9)" ( (binary_expression "iVar2 != 9" identifier != number_literal) )) ;) (expression_statement "pwVar14 = rest_of_args;" (assignment_expression "pwVar14 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (WORD_LIST *)0x0) {\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (WORD_LIST *)0x0)" ( (binary_expression "rest_of_args != (WORD_LIST *)0x0" identifier != (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);\n    }" { (do_statement "do {\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      } while (*ppwVar6 != (word_list *)0x0);" do (compound_statement "{\n        ppwVar6 = &pwVar14->next;\n        iVar8 = iVar8 + 1;\n        pwVar14 = *ppwVar6;\n      }" { (expression_statement "ppwVar6 = &pwVar14->next;" (assignment_expression "ppwVar6 = &pwVar14->next" identifier = (pointer_expression "&pwVar14->next" & (field_expression "pwVar14->next" identifier -> field_identifier))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pwVar14 = *ppwVar6;" (assignment_expression "pwVar14 = *ppwVar6" identifier = (pointer_expression "*ppwVar6" * identifier)) ;) }) while (parenthesized_expression "(*ppwVar6 != (word_list *)0x0)" ( (binary_expression "*ppwVar6 != (word_list *)0x0" (pointer_expression "*ppwVar6" * identifier) != (cast_expression "(word_list *)0x0" ( (type_descriptor "word_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    iVar8 = dollar_dollar_pid;\n    break;" case number_literal : (expression_statement "iVar8 = dollar_dollar_pid;" (assignment_expression "iVar8 = dollar_dollar_pid" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x2d:\n    unaff_ESI = which_set_flags();\n    goto _L5403;" case number_literal : (expression_statement "unaff_ESI = which_set_flags();" (assignment_expression "unaff_ESI = which_set_flags()" identifier = (call_expression "which_set_flags()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto _L5403;" goto statement_identifier ;)) (case_statement "case 0x3f:\n    iVar8 = last_command_exit_value;" case number_literal : (expression_statement "iVar8 = last_command_exit_value;" (assignment_expression "iVar8 = last_command_exit_value" identifier = identifier) ;)) })) (expression_statement "unaff_ESI = itos((longlong)iVar8);" (assignment_expression "unaff_ESI = itos((longlong)iVar8)" identifier = (call_expression "itos((longlong)iVar8)" identifier (argument_list "((longlong)iVar8)" ( (cast_expression "(longlong)iVar8" ( (type_descriptor "longlong" type_identifier) ) identifier) )))) ;) (labeled_statement "_L5403:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" statement_identifier : (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075e08:\n    sVar7 = 0;\n    local_40 = 0;\n  }" { (labeled_statement "LAB_00075e08:\n    sVar7 = 0;" statement_identifier : (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" else (compound_statement "{\n    sVar7 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (if_statement "if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }" if (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00075e36:\n      sVar7 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }\n    }" { (labeled_statement "LAB_00075e36:\n      sVar7 = 1;" statement_identifier : (expression_statement "sVar7 = 1;" (assignment_expression "sVar7 = 1" identifier = number_literal) ;)) (if_statement "if ((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')) {\n        sVar7 = strlen(unaff_ESI);\n      }" if (parenthesized_expression "((unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0'))" ( (binary_expression "(unaff_ESI[1] != '\0') && (sVar7 = 2, unaff_ESI[2] != '\0')" (parenthesized_expression "(unaff_ESI[1] != '\0')" ( (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar7 = 2, unaff_ESI[2] != '\0')" ( (comma_expression "sVar7 = 2, unaff_ESI[2] != '\0'" (assignment_expression "sVar7 = 2" identifier = number_literal) , (binary_expression "unaff_ESI[2] != '\0'" (subscript_expression "unaff_ESI[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        sVar7 = strlen(unaff_ESI);\n      }" { (expression_statement "sVar7 = strlen(unaff_ESI);" (assignment_expression "sVar7 = strlen(unaff_ESI)" identifier = (call_expression "strlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) })) (labeled_statement "LAB_00075dd0:\n    local_40 = 0;" statement_identifier : (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;)) (expression_statement "free(unaff_ESI);" (call_expression "free(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier ))) ;) })))) (labeled_statement "LAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar7);\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar7);\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(local_40,sVar7);\n  }" { (return_statement "return CONCAT44(local_40,sVar7);" return (call_expression "CONCAT44(local_40,sVar7)" identifier (argument_list "(local_40,sVar7)" ( identifier , identifier ))) ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined8 __regparm3 FUN_00075ad0(char *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    \n  FUN_000ecc40();\n}\n\n" (function_definition "undefined8 __regparm3 FUN_00075ad0(char *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    \n  FUN_000ecc40();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00075ad0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    \n  FUN_000ecc40();\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *unaff_ESI;" primitive_type (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x75adb;" (assignment_expression "uStack_14 = 0x75adb" identifier = number_literal) ;) (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) ))))) ;) (expression_statement "bVar2 = param_1[1];" (assignment_expression "bVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" do (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" { (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" ( (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" identifier = identifier) ;) }) while (parenthesized_expression "(sVar7 != 9)" ( (binary_expression "sVar7 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;" statement_identifier : (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (if_statement "if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" if (parenthesized_expression "((bVar2 == 0x40) || (bVar2 == 0x2a))" ( (binary_expression "(bVar2 == 0x40) || (bVar2 == 0x2a)" (parenthesized_expression "(bVar2 == 0x40)" ( (binary_expression "bVar2 == 0x40" identifier == number_literal) )) || (parenthesized_expression "(bVar2 == 0x2a)" ( (binary_expression "bVar2 == 0x2a" identifier == number_literal) ))) )) (compound_statement "{\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" { (if_statement "if (param_1[2] != '\0') goto LAB_00075b9a;" if (parenthesized_expression "(param_1[2] != '\0')" ( (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00075b9a;" goto statement_identifier ;)) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" do (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" { (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" if (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" ( (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" identifier = identifier) ;) }) while (parenthesized_expression "(sVar7 != 9)" ( (binary_expression "sVar7 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (if_statement "if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" if (parenthesized_expression "(((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0'))" ( (binary_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')" (parenthesized_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0)" ( (binary_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8)" ( (binary_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8" (pointer_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" * (cast_expression "(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" ( (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4 + 1" (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4" (cast_expression "(int)&sh_syntaxtab" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sh_syntaxtab" & identifier)) + (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[2] != '\0')" ( (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" { (labeled_statement "LAB_00075b9a:\n    pcVar6 = param_1 + 1;" statement_identifier : (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (expression_statement "iVar5 = valid_array_reference(pcVar6,0);" (assignment_expression "iVar5 = valid_array_reference(pcVar6,0)" identifier = (call_expression "valid_array_reference(pcVar6,0)" identifier (argument_list "(pcVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" { (expression_statement "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);" (assignment_expression "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30)" identifier = (call_expression "array_variable_part(pcVar6,0,&local_2c,&local_30)" identifier (argument_list "(pcVar6,0,&local_2c,&local_30)" ( identifier , number_literal , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_30" & identifier) )))) ;) (if_statement "if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" ( (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" ( (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) , (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" ( (binary_expression "uVar8 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }" { (if_statement "if (unbound_vars_is_error == 0) goto LAB_00075e08;" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) }) (else_clause "else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" else (if_statement "if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" if (parenthesized_expression "(((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0))" ( (binary_expression "((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)" (parenthesized_expression "((uVar8 & 0x44) != 0)" ( (binary_expression "(uVar8 & 0x44) != 0" (parenthesized_expression "(uVar8 & 0x44)" ( (binary_expression "uVar8 & 0x44" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }" if (parenthesized_expression "((uVar8 & 4) != 0)" ( (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(iVar5 + 4);\n        }" { (expression_statement "iVar10 = *(int *)(iVar5 + 4);" (assignment_expression "iVar10 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "cVar3 = *local_2c;" (assignment_expression "cVar3 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (if_statement "if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" if (parenthesized_expression "((uVar8 & 0x40) != 0)" ( (binary_expression "(uVar8 & 0x40) != 0" (parenthesized_expression "(uVar8 & 0x40)" ( (binary_expression "uVar8 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" { (if_statement "if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" if (parenthesized_expression "((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']'))" ( (binary_expression "(cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')" (parenthesized_expression "(cVar3 != '*' && cVar3 != '@')" ( (binary_expression "cVar3 != '*' && cVar3 != '@'" (binary_expression "cVar3 != '*'" identifier != (char_literal "'*'" ' character ')) && (binary_expression "cVar3 != '@'" identifier != (char_literal "'@'" ' character '))) )) || (parenthesized_expression "(local_2c[1] != ']')" ( (binary_expression "local_2c[1] != ']'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" { (expression_statement "local_2c[local_30 + -1] = '\0';" (assignment_expression "local_2c[local_30 + -1] = '\0'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "(local_2c == (char *)0x0)" ( (binary_expression "local_2c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }" { (expression_statement "*(undefined1 *)(local_30 + -1) = 0x5d;" (assignment_expression "*(undefined1 *)(local_30 + -1) = 0x5d" (pointer_expression "*(undefined1 *)(local_30 + -1)" * (cast_expression "(undefined1 *)(local_30 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + -1)" ( (binary_expression "local_30 + -1" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (if_statement "if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" if (parenthesized_expression "(*local_2c == '\0')" ( (binary_expression "*local_2c == '\0'" (pointer_expression "*local_2c" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_2c[local_30 + -1] = ']';\n            }" { (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" else (compound_statement "{\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" { (expression_statement "iVar10 = expand_string_assignment(local_2c,0);" (assignment_expression "iVar10 = expand_string_assignment(local_2c,0)" identifier = (call_expression "expand_string_assignment(local_2c,0)" identifier (argument_list "(local_2c,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                local_2c[local_30 + -1] = ']';\n              }" { (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) }) (else_clause "else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" else (compound_statement "{\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" { (expression_statement "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);" (assignment_expression "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf)" identifier = (cast_expression "(char *)string_list_internal(iVar10,&DAT_000f08bf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "string_list_internal(iVar10,&DAT_000f08bf)" identifier (argument_list "(iVar10,&DAT_000f08bf)" ( identifier , (pointer_expression "&DAT_000f08bf" & identifier) ))))) ;) (expression_statement "dispose_words(iVar10);" (call_expression "dispose_words(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" identifier [ (binary_expression "local_30 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" { (if_statement "if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" { (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);" (assignment_expression "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" identifier = (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),pcVar6)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (goto_statement "goto LAB_00075cba;" goto statement_identifier ;) })) }))) }))))) (goto_statement "goto LAB_000761ab;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" if (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" ( (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" { (expression_statement "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);" (assignment_expression "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8)" identifier = (pointer_expression "*(size_t *)(*(int *)(iVar5 + 4) + 8)" * (cast_expression "(size_t *)(*(int *)(iVar5 + 4) + 8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" ( (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00075b31;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (if_statement "if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']'))" ( (binary_expression "(cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')" (parenthesized_expression "(cVar3 == '*' || cVar3 == '@')" ( (binary_expression "cVar3 == '*' || cVar3 == '@'" (binary_expression "cVar3 == '*'" identifier == (char_literal "'*'" ' character ')) || (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character '))) )) && (parenthesized_expression "(local_2c[1] == ']')" ( (binary_expression "local_2c[1] == ']'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" { (if_statement "if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "((uVar8 & 4) == 0)" ( (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }" { (expression_statement "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);" (assignment_expression "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0)" identifier = (cast_expression "(size_t)(*(int *)(iVar5 + 4) != 0)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" ( (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) != number_literal) )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" else (compound_statement "{\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" { (expression_statement "sVar4 = *(size_t *)(iVar10 + 0xc);" (assignment_expression "sVar4 = *(size_t *)(iVar10 + 0xc)" identifier = (pointer_expression "*(size_t *)(iVar10 + 0xc)" * (cast_expression "(size_t *)(iVar10 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) }))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "lVar12 = array_expand_index(iVar5,local_2c,local_30,0);" (assignment_expression "lVar12 = array_expand_index(iVar5,local_2c,local_30,0)" identifier = (call_expression "array_expand_index(iVar5,local_2c,local_30,0)" identifier (argument_list "(iVar5,local_2c,local_30,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x14) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x14) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x14) & 4)" ( (binary_expression "*(byte *)(iVar5 + 0x14) & 4" (pointer_expression "*(byte *)(iVar5 + 0x14)" * (cast_expression "(byte *)(iVar5 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }" { (if_statement "if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" if (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) (compound_statement "{\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" { (expression_statement "local_2c = (char *)0x0;" (assignment_expression "local_2c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              local_2c = *(char **)(iVar5 + 4);\n            }" { (expression_statement "local_2c = *(char **)(iVar5 + 4);" (assignment_expression "local_2c = *(char **)(iVar5 + 4)" identifier = (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_00075cba;" goto statement_identifier ;) })) }) (else_clause "else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" else (if_statement "if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5))" ( (binary_expression "(-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) || (parenthesized_expression "(puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" ( (comma_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4)" identifier = (cast_expression "(uint *)(*(int *)(iVar5 + 4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 4)" ( (binary_expression "*(int *)(iVar5 + 4) + 4" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) )))) , (comma_expression "uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "uVar8 = (uint)lVar12 + *puVar1" identifier = (binary_expression "(uint)lVar12 + *puVar1" (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier) + (pointer_expression "*puVar1" * identifier))) , (comma_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" identifier = (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8)" (cast_expression "(int)((ulonglong)lVar12 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar12 >> 0x20)" ( (binary_expression "(ulonglong)lVar12 >> 0x20" (cast_expression "(ulonglong)lVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar5 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" ( (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)lVar12,*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)lVar12,*puVar1)" identifier (argument_list "((uint)lVar12,*puVar1)" ( (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*puVar1" * identifier) ))))) + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) , (comma_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1)" identifier = (call_expression "CONCAT44(iVar5,uVar8 + 1)" identifier (argument_list "(iVar5,uVar8 + 1)" ( identifier , (binary_expression "uVar8 + 1" identifier + number_literal) )))) , (binary_expression "-1 < iVar5" number_literal < identifier))))) ))) )) (compound_statement "{\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" { (expression_statement "local_2c = (char *)array_reference(iVar10,lVar12);" (assignment_expression "local_2c = (char *)array_reference(iVar10,lVar12)" identifier = (cast_expression "(char *)array_reference(iVar10,lVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "array_reference(iVar10,lVar12)" identifier (argument_list "(iVar10,lVar12)" ( identifier , identifier ))))) ;) (labeled_statement "LAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();" statement_identifier : (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "(sVar7 < 2)" ( (binary_expression "sVar7 < 2" identifier < number_literal) )) (compound_statement "{\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }" { (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" if (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" ( (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" ( (binary_expression "local_2c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_2c != '\0')" ( (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" if (parenthesized_expression "(local_2c[1] != '\0')" ( (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" identifier = number_literal) ;) (if_statement "if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" if (parenthesized_expression "(local_2c[2] != '\0')" ( (binary_expression "local_2c[2] != '\0'" (subscript_expression "local_2c[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" { (expression_statement "sVar4 = strlen(local_2c);" (assignment_expression "sVar4 = strlen(local_2c)" identifier = (call_expression "strlen(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) })) })) }) (else_clause "else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" else (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" if (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" ( (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" ( (binary_expression "local_2c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_2c != '\0')" ( (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" if (parenthesized_expression "(local_2c[1] != '\0')" ( (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" { (expression_statement "sVar4 = mbstrlen(local_2c);" (assignment_expression "sVar4 = mbstrlen(local_2c)" identifier = (call_expression "mbstrlen(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" identifier = (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) (labeled_statement "LAB_000761ab:\n        err_badarraysub(local_2c);" statement_identifier : (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;)) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) (expression_statement "cVar3 = local_2c[-1];" (assignment_expression "cVar3 = local_2c[-1]" identifier = (subscript_expression "local_2c[-1]" identifier [ number_literal ])) ;) (expression_statement "local_2c[-1] = '\0';" (assignment_expression "local_2c[-1] = '\0'" (subscript_expression "local_2c[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (expression_statement "local_2c = local_2c + -1;" (assignment_expression "local_2c = local_2c + -1" identifier = (binary_expression "local_2c + -1" identifier + number_literal)) ;) (expression_statement "err_unboundvar(pcVar6);" (call_expression "err_unboundvar(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "*local_2c = cVar3;" (assignment_expression "*local_2c = cVar3" (pointer_expression "*local_2c" * identifier) = identifier) ;) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "iVar5 = legal_number(pcVar6,&local_2c);" (assignment_expression "iVar5 = legal_number(pcVar6,&local_2c)" identifier = (call_expression "legal_number(pcVar6,&local_2c)" identifier (argument_list "(pcVar6,&local_2c)" ( identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" { (expression_statement "iVar5 = find_variable(pcVar6);" (assignment_expression "iVar5 = find_variable(pcVar6)" identifier = (call_expression "find_variable(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (if_statement "if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" if (parenthesized_expression "(((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0))" ( (binary_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)" (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" ( (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" ( (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) , (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" ( (binary_expression "uVar8 & 0x1000" identifier & number_literal) )) != number_literal)) ))) )) || (parenthesized_expression "((uVar8 & 0x44) == 0)" ( (binary_expression "(uVar8 & 0x44) == 0" (parenthesized_expression "(uVar8 & 0x44)" ( (binary_expression "uVar8 & 0x44" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }" { (expression_statement "sVar4 = strlen(param_1);" (assignment_expression "sVar4 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar6 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar6 = (char *)xmalloc(sVar4 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar4 + 1)" identifier (argument_list "(sVar4 + 1)" ( (binary_expression "sVar4 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strcpy(pcVar6,param_1);" (assignment_expression "pcVar6 = strcpy(pcVar6,param_1)" identifier = (call_expression "strcpy(pcVar6,param_1)" identifier (argument_list "(pcVar6,param_1)" ( identifier , identifier )))) ;) (expression_statement "*pcVar6 = '$';" (assignment_expression "*pcVar6 = '$'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'$'" ' character ')) ;) (expression_statement "iVar5 = FUN_0006f720();" (assignment_expression "iVar5 = FUN_0006f720()" identifier = (call_expression "FUN_0006f720()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          free(pcVar6);\n        }" { (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }) (else_clause "else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" else (compound_statement "{\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" { (expression_statement "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf);" (assignment_expression "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf)" identifier = (cast_expression "(char *)string_list_internal(iVar5,&DAT_000f08bf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "string_list_internal(iVar5,&DAT_000f08bf)" identifier (argument_list "(iVar5,&DAT_000f08bf)" ( identifier , (pointer_expression "&DAT_000f08bf" & identifier) ))))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "dispose_words(iVar5);" (call_expression "dispose_words(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" { (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" if (parenthesized_expression "(sVar7 < 2)" ( (binary_expression "sVar7 < 2" identifier < number_literal) )) (compound_statement "{\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }" { (if_statement "if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }" if (parenthesized_expression "(((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0'))" ( (binary_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')" (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" ( (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(sVar4 = 2, __s[2] != '\0')" ( (comma_expression "sVar4 = 2, __s[2] != '\0'" (assignment_expression "sVar4 = 2" identifier = number_literal) , (binary_expression "__s[2] != '\0'" (subscript_expression "__s[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                sVar4 = strlen(__s);\n              }" { (expression_statement "sVar4 = strlen(__s);" (assignment_expression "sVar4 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })) }) (else_clause "else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" else (if_statement "if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" if (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" ( (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" ( (binary_expression "*__s != '\0'" (pointer_expression "*__s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" ( (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n              sVar4 = mbstrlen(__s);\n            }" { (expression_statement "sVar4 = mbstrlen(__s);" (assignment_expression "sVar4 = mbstrlen(__s)" identifier = (call_expression "mbstrlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) })))) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" else (compound_statement "{\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" { (if_statement "if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" if (parenthesized_expression "((uVar8 & 0x40) == 0)" ( (binary_expression "(uVar8 & 0x40) == 0" (parenthesized_expression "(uVar8 & 0x40)" ( (binary_expression "uVar8 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }" { (expression_statement "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);" (assignment_expression "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" identifier = (cast_expression "(char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "array_reference(*(undefined4 *)(iVar5 + 4),0,0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),0,0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , number_literal , number_literal ))))) ;) }) (else_clause "else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" else (compound_statement "{\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" { (expression_statement "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);" (assignment_expression "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" identifier = (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "&DAT_00102cee" & identifier) ))))) ;) }))) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_00075f00;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00075f00;" goto statement_identifier ;)) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(sVar4 < 2)" ( (binary_expression "sVar4 < 2" identifier < number_literal) )) (compound_statement "{\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }" { (if_statement "if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" if (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" if (parenthesized_expression "(pcVar6[1] != '\0')" ( (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" { (if_statement "if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" if (parenthesized_expression "(pcVar6[2] == '\0')" ( (binary_expression "pcVar6[2] == '\0'" (subscript_expression "pcVar6[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                sVar4 = 2;\n                local_40 = 0;\n              }" { (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" else (compound_statement "{\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');" do (compound_statement "{\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                }" { (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar11 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar4 = ~uVar8 - 1;" (assignment_expression "sVar4 = ~uVar8 - 1" identifier = (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" ~ identifier) - number_literal)) ;) }))) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) }) (else_clause "else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" else (if_statement "if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" if (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" if (parenthesized_expression "(pcVar6[1] != '\0')" ( (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" { (expression_statement "sVar4 = mbstrlen(pcVar6);" (assignment_expression "sVar4 = mbstrlen(pcVar6)" identifier = (call_expression "mbstrlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })))) }))) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;) })) (expression_statement "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);" (assignment_expression "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28)" identifier = (cast_expression "(char *)get_dollar_var_value(local_2c,local_28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_dollar_var_value(local_2c,local_28)" identifier (argument_list "(local_2c,local_28)" ( identifier , identifier ))))) ;) (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" { (labeled_statement "LAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" statement_identifier : (if_statement "if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" if (parenthesized_expression "(unbound_vars_is_error == 0)" ( (binary_expression "unbound_vars_is_error == 0" identifier == number_literal) )) (compound_statement "{\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }" { (expression_statement "__ctype_get_mb_cur_max();" (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" else (compound_statement "{\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "local_40 = -0x80000000;" (assignment_expression "local_40 = -0x80000000" identifier = number_literal) ;) })))) (goto_statement "goto LAB_00075b32;" goto statement_identifier ;) })) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" if (parenthesized_expression "(sVar4 < 2)" ( (binary_expression "sVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" { (if_statement "if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" if (parenthesized_expression "(*unaff_ESI == '\0')" ( (binary_expression "*unaff_ESI == '\0'" (pointer_expression "*unaff_ESI" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00075e36;" goto statement_identifier ;) })) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }" if (parenthesized_expression "((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0'))" ( (binary_expression "(*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')" (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 1, unaff_ESI[1] != '\0')" ( (comma_expression "sVar4 = 1, unaff_ESI[1] != '\0'" (assignment_expression "sVar4 = 1" identifier = number_literal) , (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      sVar4 = mbstrlen(unaff_ESI);\n    }" { (expression_statement "sVar4 = mbstrlen(unaff_ESI);" (assignment_expression "sVar4 = mbstrlen(unaff_ESI)" identifier = (call_expression "mbstrlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) (goto_statement "goto LAB_00075dd0;" goto statement_identifier ;) })) (switch_statement "switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" switch (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" { (case_statement "case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;" case number_literal : (expression_statement "iVar5 = last_asynchronous_pid;" (assignment_expression "iVar5 = last_asynchronous_pid" identifier = identifier) ;) (if_statement "if (last_asynchronous_pid == -1) goto LAB_00075e08;" if (parenthesized_expression "(last_asynchronous_pid == -1)" ( (binary_expression "last_asynchronous_pid == -1" identifier == number_literal) )) (goto_statement "goto LAB_00075e08;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00075e29;" default : (goto_statement "goto LAB_00075e29;" goto statement_identifier ;)) (case_statement "case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);" do (compound_statement "{\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    }" { (expression_statement "iVar10 = iVar5 + 1;" (assignment_expression "iVar10 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if ((&dollar_vars)[iVar10] == 0) break;" if (parenthesized_expression "((&dollar_vars)[iVar10] == 0)" ( (binary_expression "(&dollar_vars)[iVar10] == 0" (subscript_expression "(&dollar_vars)[iVar10]" (parenthesized_expression "(&dollar_vars)" ( (pointer_expression "&dollar_vars" & identifier) )) [ identifier ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar10;" (assignment_expression "iVar5 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 != 9)" ( (binary_expression "iVar10 != 9" identifier != number_literal) )) ;) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" identifier = identifier) ;) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" if (parenthesized_expression "(rest_of_args != (int *)0x0)" ( (binary_expression "rest_of_args != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" { (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);" do (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;" case number_literal : (expression_statement "iVar5 = dollar_dollar_pid;" (assignment_expression "iVar5 = dollar_dollar_pid" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;" case number_literal : (expression_statement "unaff_ESI = (char *)which_set_flags();" (assignment_expression "unaff_ESI = (char *)which_set_flags()" identifier = (cast_expression "(char *)which_set_flags()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "which_set_flags()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_00075e29;" goto statement_identifier ;)) (case_statement "case 0x3f:\n    iVar5 = last_command_exit_value;" case number_literal : (expression_statement "iVar5 = last_command_exit_value;" (assignment_expression "iVar5 = last_command_exit_value" identifier = identifier) ;)) })) (expression_statement "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);" (assignment_expression "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f)" identifier = (cast_expression "(char *)itos(iVar5,iVar5 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "itos(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))))) ;) (labeled_statement "LAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" statement_identifier : (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" if (parenthesized_expression "(unaff_ESI == (char *)0x0)" ( (binary_expression "unaff_ESI == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }" { (labeled_statement "LAB_00075e08:\n    sVar4 = 0;" statement_identifier : (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" else (compound_statement "{\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (if_statement "if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" if (parenthesized_expression "(*unaff_ESI != '\0')" ( (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" { (labeled_statement "LAB_00075e36:\n      sVar4 = 1;" statement_identifier : (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" identifier = number_literal) ;)) (if_statement "if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }" if (parenthesized_expression "((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0'))" ( (binary_expression "(unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')" (parenthesized_expression "(unaff_ESI[1] != '\0')" ( (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = 2, unaff_ESI[2] != '\0')" ( (comma_expression "sVar4 = 2, unaff_ESI[2] != '\0'" (assignment_expression "sVar4 = 2" identifier = number_literal) , (binary_expression "unaff_ESI[2] != '\0'" (subscript_expression "unaff_ESI[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        sVar4 = strlen(unaff_ESI);\n      }" { (expression_statement "sVar4 = strlen(unaff_ESI);" (assignment_expression "sVar4 = strlen(unaff_ESI)" identifier = (call_expression "strlen(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier )))) ;) })) })) (labeled_statement "LAB_00075dd0:\n    local_40 = 0;" statement_identifier : (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;)) (expression_statement "free(unaff_ESI);" (call_expression "free(unaff_ESI)" identifier (argument_list "(unaff_ESI)" ( identifier ))) ;) })))) (labeled_statement "LAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\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(local_40,sVar4);\n  }" { (return_statement "return CONCAT44(local_40,sVar4);" return (call_expression "CONCAT44(local_40,sVar4)" identifier (argument_list "(local_40,sVar4)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (binary_expression IDENT != (char_literal ' character '))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' escape_sequence ')) ;) (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) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' character ')) || (binary_expression IDENT == (char_literal ' character '))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * IDENT))) , (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (pointer_expression * IDENT) ))))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression LIT < IDENT))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) })) })))) (goto_statement goto statement_identifier ;) })))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) }))) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( 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 (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined8 __regparm3 FUN_00075ad0(char *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    \n  FUN_000ecc40();\n}" (type_identifier "undefined8") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00075ad0(char *param_1)" (identifier "FUN_00075ad0") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  char cVar3;\n  size_t sVar4;\n  int iVar5;\n  char *pcVar6;\n  size_t sVar7;\n  char *__s;\n  uint uVar8;\n  int *piVar9;\n  char *unaff_ESI;\n  int iVar10;\n  int in_GS_OFFSET;\n  byte bVar11;\n  longlong lVar12;\n  int local_40;\n  int local_30;\n  char *local_2c;\n  undefined4 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x75adb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  bVar2 = param_1[1];\n  if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }\n  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }\n  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }\n  switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }\n  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);\nLAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }\nLAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }\n                    \n  FUN_000ecc40();\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "char *unaff_ESI;" (primitive_type "char") (pointer_declarator "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "longlong lVar12;" (type_identifier "longlong") (identifier "lVar12") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "char *local_2c;" (primitive_type "char") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x75adb;" (assignment_expression "uStack_14 = 0x75adb" (identifier "uStack_14") (= "=") (number_literal "0x75adb")) (; ";")) (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")) () ")"))))) (; ";")) (expression_statement "bVar2 = param_1[1];" (assignment_expression "bVar2 = param_1[1]" (identifier "bVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar2 == 0) {\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\nLAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;\n    goto LAB_00075b32;\n  }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" (do "do") (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" ({ "{") (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" (identifier "sVar7") (= "=") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" (if "if") (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" (( "(") (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" (( "(") (pointer_expression "&dollar_vars" (& "&") (identifier "dollar_vars")) () ")")) ([ "[") (identifier "sVar7") (] "]")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" (identifier "sVar4") (= "=") (identifier "sVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar7 != 9)" (( "(") (binary_expression "sVar7 != 9" (identifier "sVar7") (!= "!=") (number_literal "9")) () ")")) (; ";")) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" (identifier "piVar9") (= "=") (identifier "rest_of_args")) (; ";")) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" (if "if") (parenthesized_expression "(rest_of_args != (int *)0x0)" (( "(") (binary_expression "rest_of_args != (int *)0x0" (identifier "rest_of_args") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" ({ "{") (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" (do "do") (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" ({ "{") (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" (identifier "sVar4") (= "=") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00075b31:\n    local_40 = (int)sVar4 >> 0x1f;" (statement_identifier "LAB_00075b31") (: ":") (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" (identifier "local_40") (= "=") (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar4")) (>> ">>") (number_literal "0x1f"))) (; ";"))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (if_statement "if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" (if "if") (parenthesized_expression "((bVar2 == 0x40) || (bVar2 == 0x2a))" (( "(") (binary_expression "(bVar2 == 0x40) || (bVar2 == 0x2a)" (parenthesized_expression "(bVar2 == 0x40)" (( "(") (binary_expression "bVar2 == 0x40" (identifier "bVar2") (== "==") (number_literal "0x40")) () ")")) (|| "||") (parenthesized_expression "(bVar2 == 0x2a)" (( "(") (binary_expression "bVar2 == 0x2a" (identifier "bVar2") (== "==") (number_literal "0x2a")) () ")"))) () ")")) (compound_statement "{\n    if (param_1[2] != '\0') goto LAB_00075b9a;\n    sVar4 = 0;\n    do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    goto LAB_00075b31;\n  }" ({ "{") (if_statement "if (param_1[2] != '\0') goto LAB_00075b9a;" (if "if") (parenthesized_expression "(param_1[2] != '\0')" (( "(") (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00075b9a;" (goto "goto") (statement_identifier "LAB_00075b9a") (; ";"))) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    } while (sVar7 != 9);" (do "do") (compound_statement "{\n      sVar7 = sVar4 + 1;\n      if ((&dollar_vars)[sVar7] == 0) break;\n      sVar4 = sVar7;\n    }" ({ "{") (expression_statement "sVar7 = sVar4 + 1;" (assignment_expression "sVar7 = sVar4 + 1" (identifier "sVar7") (= "=") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((&dollar_vars)[sVar7] == 0) break;" (if "if") (parenthesized_expression "((&dollar_vars)[sVar7] == 0)" (( "(") (binary_expression "(&dollar_vars)[sVar7] == 0" (subscript_expression "(&dollar_vars)[sVar7]" (parenthesized_expression "(&dollar_vars)" (( "(") (pointer_expression "&dollar_vars" (& "&") (identifier "dollar_vars")) () ")")) ([ "[") (identifier "sVar7") (] "]")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar4 = sVar7;" (assignment_expression "sVar4 = sVar7" (identifier "sVar4") (= "=") (identifier "sVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar7 != 9)" (( "(") (binary_expression "sVar7 != 9" (identifier "sVar7") (!= "!=") (number_literal "9")) () ")")) (; ";")) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" (identifier "piVar9") (= "=") (identifier "rest_of_args")) (; ";")) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" (if "if") (parenthesized_expression "(rest_of_args != (int *)0x0)" (( "(") (binary_expression "rest_of_args != (int *)0x0" (identifier "rest_of_args") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" ({ "{") (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      } while (piVar9 != (int *)0x0);" (do "do") (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        sVar4 = sVar4 + 1;\n      }" ({ "{") (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" (identifier "sVar4") (= "=") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00075b31;" (goto "goto") (statement_identifier "LAB_00075b31") (; ";")) (} "}"))) (if_statement "if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" (if "if") (parenthesized_expression "(((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0'))" (( "(") (binary_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')" (parenthesized_expression "((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8)" (( "(") (binary_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8" (pointer_expression "*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" (* "*") (cast_expression "(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1)" (( "(") (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4 + 1" (binary_expression "(int)&sh_syntaxtab + (uint)bVar2 * 4" (cast_expression "(int)&sh_syntaxtab" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&sh_syntaxtab" (& "&") (identifier "sh_syntaxtab"))) (+ "+") (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "4"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1[2] != '\0')" (( "(") (binary_expression "param_1[2] != '\0'" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00075b9a:\n    pcVar6 = param_1 + 1;\n    iVar5 = valid_array_reference(pcVar6,0);\n    if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }\n    iVar5 = legal_number(pcVar6,&local_2c);\n    if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }\n    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);\n    if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }\n    sVar4 = __ctype_get_mb_cur_max();\n    if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }\n    sVar4 = 0;\n    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }\n    goto LAB_00075dd0;\n  }" ({ "{") (labeled_statement "LAB_00075b9a:\n    pcVar6 = param_1 + 1;" (statement_identifier "LAB_00075b9a") (: ":") (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" (identifier "pcVar6") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar5 = valid_array_reference(pcVar6,0);" (assignment_expression "iVar5 = valid_array_reference(pcVar6,0)" (identifier "iVar5") (= "=") (call_expression "valid_array_reference(pcVar6,0)" (identifier "valid_array_reference") (argument_list "(pcVar6,0)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);\n      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }\n      cVar3 = local_2c[-1];\n      local_2c[-1] = '\0';\n      last_command_exit_value = 1;\n      local_2c = local_2c + -1;\n      err_unboundvar(pcVar6);\n      *local_2c = cVar3;\n      sVar4 = 0xffffffff;\n      local_40 = -1;\n      goto LAB_00075b32;\n    }" ({ "{") (expression_statement "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);" (assignment_expression "iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30)" (identifier "iVar5") (= "=") (call_expression "array_variable_part(pcVar6,0,&local_2c,&local_30)" (identifier "array_variable_part") (argument_list "(pcVar6,0,&local_2c,&local_30)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }\n      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" (if "if") (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" (( "(") (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (( "(") (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (, ",") (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" (( "(") (binary_expression "uVar8 & 0x1000" (identifier "uVar8") (& "&") (number_literal "0x1000")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (unbound_vars_is_error == 0) goto LAB_00075e08;\n      }" ({ "{") (if_statement "if (unbound_vars_is_error == 0) goto LAB_00075e08;" (if "if") (parenthesized_expression "(unbound_vars_is_error == 0)" (( "(") (binary_expression "unbound_vars_is_error == 0" (identifier "unbound_vars_is_error") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00075e08;" (goto "goto") (statement_identifier "LAB_00075e08") (; ";"))) (} "}")) (else_clause "else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" (else "else") (if_statement "if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" (if "if") (parenthesized_expression "(((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0))" (( "(") (binary_expression "((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)" (parenthesized_expression "((uVar8 & 0x44) != 0)" (( "(") (binary_expression "(uVar8 & 0x44) != 0" (parenthesized_expression "(uVar8 & 0x44)" (( "(") (binary_expression "uVar8 & 0x44" (identifier "uVar8") (& "&") (number_literal "0x44")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(unbound_vars_is_error == 0)" (( "(") (binary_expression "unbound_vars_is_error == 0" (identifier "unbound_vars_is_error") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar10 = 0;\n        if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }\n        cVar3 = *local_2c;\n        if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }\n        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\n        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);\n        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }\nLAB_000761ab:\n        err_badarraysub(local_2c);\n        sVar4 = 0xffffffff;\n        local_40 = -1;\n        goto LAB_00075b32;\n      }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar8 & 4) != 0) {\n          iVar10 = *(int *)(iVar5 + 4);\n        }" (if "if") (parenthesized_expression "((uVar8 & 4) != 0)" (( "(") (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" (( "(") (binary_expression "uVar8 & 4" (identifier "uVar8") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar10 = *(int *)(iVar5 + 4);\n        }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar5 + 4);" (assignment_expression "iVar10 = *(int *)(iVar5 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "cVar3 = *local_2c;" (assignment_expression "cVar3 = *local_2c" (identifier "cVar3") (= "=") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (if_statement "if ((uVar8 & 0x40) != 0) {\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" (if "if") (parenthesized_expression "((uVar8 & 0x40) != 0)" (( "(") (binary_expression "(uVar8 & 0x40) != 0" (parenthesized_expression "(uVar8 & 0x40)" (( "(") (binary_expression "uVar8 & 0x40" (identifier "uVar8") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }\n          if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }\n          goto LAB_00075e08;\n        }" ({ "{") (if_statement "if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" (if "if") (parenthesized_expression "((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']'))" (( "(") (binary_expression "(cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')" (parenthesized_expression "(cVar3 != '*' && cVar3 != '@')" (( "(") (binary_expression "cVar3 != '*' && cVar3 != '@'" (binary_expression "cVar3 != '*'" (identifier "cVar3") (!= "!=") (char_literal "'*'" (' "'") (character "*") (' "'"))) (&& "&&") (binary_expression "cVar3 != '@'" (identifier "cVar3") (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'")))) () ")")) (|| "||") (parenthesized_expression "(local_2c[1] != ']')" (( "(") (binary_expression "local_2c[1] != ']'" (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "']'" (' "'") (character "]") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            local_2c[local_30 + -1] = '\0';\n            if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }\n            goto LAB_000761ab;\n          }" ({ "{") (expression_statement "local_2c[local_30 + -1] = '\0';" (assignment_expression "local_2c[local_30 + -1] = '\0'" (subscript_expression "local_2c[local_30 + -1]" (identifier "local_2c") ([ "[") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (local_2c == (char *)0x0) {\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }\n            else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_2c == (char *)0x0)" (( "(") (binary_expression "local_2c == (char *)0x0" (identifier "local_2c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined1 *)(local_30 + -1) = 0x5d;\n            }" ({ "{") (expression_statement "*(undefined1 *)(local_30 + -1) = 0x5d;" (assignment_expression "*(undefined1 *)(local_30 + -1) = 0x5d" (pointer_expression "*(undefined1 *)(local_30 + -1)" (* "*") (cast_expression "(undefined1 *)(local_30 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + -1)" (( "(") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x5d")) (; ";")) (} "}")) (else_clause "else if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" (else "else") (if_statement "if (*local_2c == '\0') {\n              local_2c[local_30 + -1] = ']';\n            }\n            else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(*local_2c == '\0')" (( "(") (binary_expression "*local_2c == '\0'" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_2c[local_30 + -1] = ']';\n            }" ({ "{") (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" (identifier "local_2c") ([ "[") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "']'" (' "'") (character "]") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" (else "else") (compound_statement "{\n              iVar10 = expand_string_assignment(local_2c,0);\n              if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar10 = expand_string_assignment(local_2c,0);" (assignment_expression "iVar10 = expand_string_assignment(local_2c,0)" (identifier "iVar10") (= "=") (call_expression "expand_string_assignment(local_2c,0)" (identifier "expand_string_assignment") (argument_list "(local_2c,0)" (( "(") (identifier "local_2c") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n                local_2c[local_30 + -1] = ']';\n              }\n              else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_2c[local_30 + -1] = ']';\n              }" ({ "{") (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" (identifier "local_2c") ([ "[") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "']'" (' "'") (character "]") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" (else "else") (compound_statement "{\n                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);\n                dispose_words(iVar10);\n                local_2c[local_30 + -1] = ']';\n                if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }\n              }" ({ "{") (expression_statement "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);" (assignment_expression "pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf)" (identifier "pcVar6") (= "=") (cast_expression "(char *)string_list_internal(iVar10,&DAT_000f08bf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "string_list_internal(iVar10,&DAT_000f08bf)" (identifier "string_list_internal") (argument_list "(iVar10,&DAT_000f08bf)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "&DAT_000f08bf" (& "&") (identifier "DAT_000f08bf")) () ")"))))) (; ";")) (expression_statement "dispose_words(iVar10);" (call_expression "dispose_words(iVar10)" (identifier "dispose_words") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "local_2c[local_30 + -1] = ']';" (assignment_expression "local_2c[local_30 + -1] = ']'" (subscript_expression "local_2c[local_30 + -1]" (identifier "local_2c") ([ "[") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "']'" (' "'") (character "]") (' "'"))) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) {\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }\n                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);\n                  free(pcVar6);\n                  goto LAB_00075cba;\n                }" ({ "{") (if_statement "if (*pcVar6 == '\0') {\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" (if "if") (parenthesized_expression "(*pcVar6 == '\0')" (( "(") (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    err_badarraysub(local_2c);\n                    free(pcVar6);\n                    sVar4 = 0xffffffff;\n                    local_40 = -1;\n                    goto LAB_00075b32;\n                  }" ({ "{") (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" (identifier "err_badarraysub") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" (identifier "sVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" (identifier "local_40") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (expression_statement "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);" (assignment_expression "local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" (identifier "local_2c") (= "=") (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6)" (identifier "assoc_reference") (argument_list "(*(undefined4 *)(iVar5 + 4),pcVar6)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "pcVar6") () ")"))))) (; ";")) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (goto_statement "goto LAB_00075cba;" (goto "goto") (statement_identifier "LAB_00075cba") (; ";")) (} "}"))) (} "}")))) (} "}")))))) (goto_statement "goto LAB_000761ab;" (goto "goto") (statement_identifier "LAB_000761ab") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar5 + 4) != 0) {\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);\n            goto LAB_00075b31;\n          }" ({ "{") (expression_statement "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);" (assignment_expression "sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8)" (identifier "sVar4") (= "=") (pointer_expression "*(size_t *)(*(int *)(iVar5 + 4) + 8)" (* "*") (cast_expression "(size_t *)(*(int *)(iVar5 + 4) + 8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" (( "(") (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_00075b31;" (goto "goto") (statement_identifier "LAB_00075b31") (; ";")) (} "}"))) (goto_statement "goto LAB_00075e08;" (goto "goto") (statement_identifier "LAB_00075e08") (; ";")) (} "}"))) (if_statement "if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" (if "if") (parenthesized_expression "((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']'))" (( "(") (binary_expression "(cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')" (parenthesized_expression "(cVar3 == '*' || cVar3 == '@')" (( "(") (binary_expression "cVar3 == '*' || cVar3 == '@'" (binary_expression "cVar3 == '*'" (identifier "cVar3") (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) (|| "||") (binary_expression "cVar3 == '@'" (identifier "cVar3") (== "==") (char_literal "'@'" (' "'") (character "@") (' "'")))) () ")")) (&& "&&") (parenthesized_expression "(local_2c[1] == ']')" (( "(") (binary_expression "local_2c[1] == ']'" (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "']'" (' "'") (character "]") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" ({ "{") (if_statement "if ((uVar8 & 4) == 0) {\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }\n          else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" (if "if") (parenthesized_expression "((uVar8 & 4) == 0)" (( "(") (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" (( "(") (binary_expression "uVar8 & 4" (identifier "uVar8") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);\n            local_40 = 0;\n          }" ({ "{") (expression_statement "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);" (assignment_expression "sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0)" (identifier "sVar4") (= "=") (cast_expression "(size_t)(*(int *)(iVar5 + 4) != 0)" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(*(int *)(iVar5 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 4) != 0" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" (else "else") (compound_statement "{\n            sVar4 = 0;\n            local_40 = 0;\n            if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar10 != 0) {\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              sVar4 = *(size_t *)(iVar10 + 0xc);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" ({ "{") (expression_statement "sVar4 = *(size_t *)(iVar10 + 0xc);" (assignment_expression "sVar4 = *(size_t *)(iVar10 + 0xc)" (identifier "sVar4") (= "=") (pointer_expression "*(size_t *)(iVar10 + 0xc)" (* "*") (cast_expression "(size_t *)(iVar10 + 0xc)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" (identifier "local_40") (= "=") (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar4")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (expression_statement "lVar12 = array_expand_index(iVar5,local_2c,local_30,0);" (assignment_expression "lVar12 = array_expand_index(iVar5,local_2c,local_30,0)" (identifier "lVar12") (= "=") (call_expression "array_expand_index(iVar5,local_2c,local_30,0)" (identifier "array_expand_index") (argument_list "(iVar5,local_2c,local_30,0)" (( "(") (identifier "iVar5") (, ",") (identifier "local_2c") (, ",") (identifier "local_30") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }\n        else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x14) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x14) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x14) & 4)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x14) & 4" (pointer_expression "*(byte *)(iVar5 + 0x14)" (* "*") (cast_expression "(byte *)(iVar5 + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }\n        }" ({ "{") (if_statement "if (-1 < lVar12) {\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" (if "if") (parenthesized_expression "(-1 < lVar12)" (( "(") (binary_expression "-1 < lVar12" (number_literal "-1") (< "<") (identifier "lVar12")) () ")")) (compound_statement "{\n            local_2c = (char *)0x0;\n            if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }\n            goto LAB_00075cba;\n          }" ({ "{") (expression_statement "local_2c = (char *)0x0;" (assignment_expression "local_2c = (char *)0x0" (identifier "local_2c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (lVar12 == 0) {\n              local_2c = *(char **)(iVar5 + 4);\n            }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_2c = *(char **)(iVar5 + 4);\n            }" ({ "{") (expression_statement "local_2c = *(char **)(iVar5 + 4);" (assignment_expression "local_2c = *(char **)(iVar5 + 4)" (identifier "local_2c") (= "=") (pointer_expression "*(char **)(iVar5 + 4)" (* "*") (cast_expression "(char **)(iVar5 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (goto_statement "goto LAB_00075cba;" (goto "goto") (statement_identifier "LAB_00075cba") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" (else "else") (if_statement "if ((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" (if "if") (parenthesized_expression "((-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5))" (( "(") (binary_expression "(-1 < lVar12) ||\n                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" (parenthesized_expression "(-1 < lVar12)" (( "(") (binary_expression "-1 < lVar12" (number_literal "-1") (< "<") (identifier "lVar12")) () ")")) (|| "||") (parenthesized_expression "(puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)" (( "(") (comma_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(*(int *)(iVar5 + 4) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar5 + 4) + 4" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (, ",") (comma_expression "uVar8 = (uint)lVar12 + *puVar1,\n                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "uVar8 = (uint)lVar12 + *puVar1" (identifier "uVar8") (= "=") (binary_expression "(uint)lVar12 + *puVar1" (cast_expression "(uint)lVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar12")) (+ "+") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (, ",") (comma_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),\n                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" (identifier "iVar5") (= "=") (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +\n                        (uint)CARRY4((uint)lVar12,*puVar1)" (binary_expression "(int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8)" (cast_expression "(int)((ulonglong)lVar12 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar12 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar12 >> 0x20" (cast_expression "(ulonglong)lVar12" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar12")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 4) + 8)" (( "(") (binary_expression "*(int *)(iVar5 + 4) + 8" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4((uint)lVar12,*puVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)lVar12,*puVar1)" (identifier "CARRY4") (argument_list "((uint)lVar12,*puVar1)" (( "(") (cast_expression "(uint)lVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar12")) (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")"))))) (+ "+") (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar8)" (( "(") (binary_expression "0xfffffffe < uVar8" (number_literal "0xfffffffe") (< "<") (identifier "uVar8")) () ")"))))) (, ",") (comma_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5" (assignment_expression "lVar12 = CONCAT44(iVar5,uVar8 + 1)" (identifier "lVar12") (= "=") (call_expression "CONCAT44(iVar5,uVar8 + 1)" (identifier "CONCAT44") (argument_list "(iVar5,uVar8 + 1)" (( "(") (identifier "iVar5") (, ",") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")))))) () ")"))) () ")")) (compound_statement "{\n          local_2c = (char *)array_reference(iVar10,lVar12);\nLAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();\n          local_40 = 0;\n          sVar4 = 0;\n          if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }\n          goto LAB_00075b32;\n        }" ({ "{") (expression_statement "local_2c = (char *)array_reference(iVar10,lVar12);" (assignment_expression "local_2c = (char *)array_reference(iVar10,lVar12)" (identifier "local_2c") (= "=") (cast_expression "(char *)array_reference(iVar10,lVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "array_reference(iVar10,lVar12)" (identifier "array_reference") (argument_list "(iVar10,lVar12)" (( "(") (identifier "iVar10") (, ",") (identifier "lVar12") () ")"))))) (; ";")) (labeled_statement "LAB_00075cba:\n          sVar7 = __ctype_get_mb_cur_max();" (statement_identifier "LAB_00075cba") (: ":") (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" (identifier "sVar7") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (sVar7 < 2) {\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }\n          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" (if "if") (parenthesized_expression "(sVar7 < 2)" (( "(") (binary_expression "sVar7 < 2" (identifier "sVar7") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }\n          }" ({ "{") (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" (if "if") (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" (( "(") (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" (( "(") (binary_expression "local_2c != (char *)0x0" (identifier "local_2c") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*local_2c != '\0')" (( "(") (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              local_40 = 0;\n              sVar4 = 1;\n              if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }\n            }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_2c[1] != '\0') {\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" (if "if") (parenthesized_expression "(local_2c[1] != '\0')" (( "(") (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_40 = 0;\n                sVar4 = 2;\n                if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }\n              }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" (identifier "sVar4") (= "=") (number_literal "2")) (; ";")) (if_statement "if (local_2c[2] != '\0') {\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" (if "if") (parenthesized_expression "(local_2c[2] != '\0')" (( "(") (binary_expression "local_2c[2] != '\0'" (subscript_expression "local_2c[2]" (identifier "local_2c") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  sVar4 = strlen(local_2c);\n                  local_40 = 0;\n                }" ({ "{") (expression_statement "sVar4 = strlen(local_2c);" (assignment_expression "sVar4 = strlen(local_2c)" (identifier "sVar4") (= "=") (call_expression "strlen(local_2c)" (identifier "strlen") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" (else "else") (if_statement "if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" (if "if") (parenthesized_expression "((local_2c != (char *)0x0) && (*local_2c != '\0'))" (( "(") (binary_expression "(local_2c != (char *)0x0) && (*local_2c != '\0')" (parenthesized_expression "(local_2c != (char *)0x0)" (( "(") (binary_expression "local_2c != (char *)0x0" (identifier "local_2c") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*local_2c != '\0')" (( "(") (binary_expression "*local_2c != '\0'" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }\n          }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_2c[1] != '\0') {\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" (if "if") (parenthesized_expression "(local_2c[1] != '\0')" (( "(") (binary_expression "local_2c[1] != '\0'" (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              sVar4 = mbstrlen(local_2c);\n              local_40 = (int)sVar4 >> 0x1f;\n            }" ({ "{") (expression_statement "sVar4 = mbstrlen(local_2c);" (assignment_expression "sVar4 = mbstrlen(local_2c)" (identifier "sVar4") (= "=") (call_expression "mbstrlen(local_2c)" (identifier "mbstrlen") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "local_40 = (int)sVar4 >> 0x1f;" (assignment_expression "local_40 = (int)sVar4 >> 0x1f" (identifier "local_40") (= "=") (binary_expression "(int)sVar4 >> 0x1f" (cast_expression "(int)sVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar4")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}"))) (} "}"))))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))))) (labeled_statement "LAB_000761ab:\n        err_badarraysub(local_2c);" (statement_identifier "LAB_000761ab") (: ":") (expression_statement "err_badarraysub(local_2c);" (call_expression "err_badarraysub(local_2c)" (identifier "err_badarraysub") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")"))) (; ";"))) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" (identifier "sVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" (identifier "local_40") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))))) (expression_statement "cVar3 = local_2c[-1];" (assignment_expression "cVar3 = local_2c[-1]" (identifier "cVar3") (= "=") (subscript_expression "local_2c[-1]" (identifier "local_2c") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "local_2c[-1] = '\0';" (assignment_expression "local_2c[-1] = '\0'" (subscript_expression "local_2c[-1]" (identifier "local_2c") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" (identifier "last_command_exit_value") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_2c = local_2c + -1;" (assignment_expression "local_2c = local_2c + -1" (identifier "local_2c") (= "=") (binary_expression "local_2c + -1" (identifier "local_2c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "err_unboundvar(pcVar6);" (call_expression "err_unboundvar(pcVar6)" (identifier "err_unboundvar") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "*local_2c = cVar3;" (assignment_expression "*local_2c = cVar3" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (= "=") (identifier "cVar3")) (; ";")) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" (identifier "sVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40 = -1;" (assignment_expression "local_40 = -1" (identifier "local_40") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (expression_statement "iVar5 = legal_number(pcVar6,&local_2c);" (assignment_expression "iVar5 = legal_number(pcVar6,&local_2c)" (identifier "iVar5") (= "=") (call_expression "legal_number(pcVar6,&local_2c)" (identifier "legal_number") (argument_list "(pcVar6,&local_2c)" (( "(") (identifier "pcVar6") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = find_variable(pcVar6);\n      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }\n      goto LAB_00075e08;\n    }" ({ "{") (expression_statement "iVar5 = find_variable(pcVar6);" (assignment_expression "iVar5 = find_variable(pcVar6)" (identifier "iVar5") (= "=") (call_expression "find_variable(pcVar6)" (identifier "find_variable") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")")))) (; ";")) (if_statement "if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)) {\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }\n      else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" (if "if") (parenthesized_expression "(((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0))" (( "(") (binary_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||\n         ((uVar8 & 0x44) == 0)" (parenthesized_expression "((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0))" (( "(") (binary_expression "(iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)" (( "(") (comma_expression "uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (, ",") (binary_expression "(uVar8 & 0x1000) != 0" (parenthesized_expression "(uVar8 & 0x1000)" (( "(") (binary_expression "uVar8 & 0x1000" (identifier "uVar8") (& "&") (number_literal "0x1000")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar8 & 0x44) == 0)" (( "(") (binary_expression "(uVar8 & 0x44) == 0" (parenthesized_expression "(uVar8 & 0x44)" (( "(") (binary_expression "uVar8 & 0x44" (identifier "uVar8") (& "&") (number_literal "0x44")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        sVar4 = strlen(param_1);\n        pcVar6 = (char *)xmalloc(sVar4 + 1);\n        pcVar6 = strcpy(pcVar6,param_1);\n        *pcVar6 = '$';\n        iVar5 = FUN_0006f720();\n        if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }\n      }" ({ "{") (expression_statement "sVar4 = strlen(param_1);" (assignment_expression "sVar4 = strlen(param_1)" (identifier "sVar4") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar6 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar6 = (char *)xmalloc(sVar4 + 1)" (identifier "pcVar6") (= "=") (cast_expression "(char *)xmalloc(sVar4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar4 + 1)" (identifier "xmalloc") (argument_list "(sVar4 + 1)" (( "(") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar6 = strcpy(pcVar6,param_1);" (assignment_expression "pcVar6 = strcpy(pcVar6,param_1)" (identifier "pcVar6") (= "=") (call_expression "strcpy(pcVar6,param_1)" (identifier "strcpy") (argument_list "(pcVar6,param_1)" (( "(") (identifier "pcVar6") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*pcVar6 = '$';" (assignment_expression "*pcVar6 = '$'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (= "=") (char_literal "'$'" (' "'") (character "$") (' "'"))) (; ";")) (expression_statement "iVar5 = FUN_0006f720();" (assignment_expression "iVar5 = FUN_0006f720()" (identifier "iVar5") (= "=") (call_expression "FUN_0006f720()" (identifier "FUN_0006f720") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          free(pcVar6);\n        }\n        else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          free(pcVar6);\n        }" ({ "{") (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" (else "else") (compound_statement "{\n          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);\n          free(pcVar6);\n          dispose_words(iVar5);\n          if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }\n        }" ({ "{") (expression_statement "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf);" (assignment_expression "__s = (char *)string_list_internal(iVar5,&DAT_000f08bf)" (identifier "__s") (= "=") (cast_expression "(char *)string_list_internal(iVar5,&DAT_000f08bf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "string_list_internal(iVar5,&DAT_000f08bf)" (identifier "string_list_internal") (argument_list "(iVar5,&DAT_000f08bf)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&DAT_000f08bf" (& "&") (identifier "DAT_000f08bf")) () ")"))))) (; ";")) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "dispose_words(iVar5);" (call_expression "dispose_words(iVar5)" (identifier "dispose_words") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (__s != (char *)0x0) {\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" (if "if") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            sVar7 = __ctype_get_mb_cur_max();\n            sVar4 = 0;\n            if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }\n            free(__s);\n            local_40 = 0;\n            goto LAB_00075b32;\n          }" ({ "{") (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" (identifier "sVar7") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (sVar7 < 2) {\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }\n            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" (if "if") (parenthesized_expression "(sVar7 < 2)" (( "(") (binary_expression "sVar7 < 2" (identifier "sVar7") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }\n            }" ({ "{") (if_statement "if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {\n                sVar4 = strlen(__s);\n              }" (if "if") (parenthesized_expression "(((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0'))" (( "(") (binary_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')" (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" (( "(") (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" (( "(") (binary_expression "*__s != '\0'" (pointer_expression "*__s" (* "*") (identifier "__s")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" (( "(") (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (, ",") (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 = 2, __s[2] != '\0')" (( "(") (comma_expression "sVar4 = 2, __s[2] != '\0'" (assignment_expression "sVar4 = 2" (identifier "sVar4") (= "=") (number_literal "2")) (, ",") (binary_expression "__s[2] != '\0'" (subscript_expression "__s[2]" (identifier "__s") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                sVar4 = strlen(__s);\n              }" ({ "{") (expression_statement "sVar4 = strlen(__s);" (assignment_expression "sVar4 = strlen(__s)" (identifier "sVar4") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" (else "else") (if_statement "if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {\n              sVar4 = mbstrlen(__s);\n            }" (if "if") (parenthesized_expression "((*__s != '\0') && (sVar4 = 1, __s[1] != '\0'))" (( "(") (binary_expression "(*__s != '\0') && (sVar4 = 1, __s[1] != '\0')" (parenthesized_expression "(*__s != '\0')" (( "(") (binary_expression "*__s != '\0'" (pointer_expression "*__s" (* "*") (identifier "__s")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 = 1, __s[1] != '\0')" (( "(") (comma_expression "sVar4 = 1, __s[1] != '\0'" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (, ",") (binary_expression "__s[1] != '\0'" (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n              sVar4 = mbstrlen(__s);\n            }" ({ "{") (expression_statement "sVar4 = mbstrlen(__s);" (assignment_expression "sVar4 = mbstrlen(__s)" (identifier "sVar4") (= "=") (call_expression "mbstrlen(__s)" (identifier "mbstrlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (} "}"))))) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" (else "else") (compound_statement "{\n        if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }\n        if (pcVar6 == (char *)0x0) goto LAB_00075f00;\n        sVar4 = __ctype_get_mb_cur_max();\n        if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }\n      }" ({ "{") (if_statement "if ((uVar8 & 0x40) == 0) {\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }\n        else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" (if "if") (parenthesized_expression "((uVar8 & 0x40) == 0)" (( "(") (binary_expression "(uVar8 & 0x40) == 0" (parenthesized_expression "(uVar8 & 0x40)" (( "(") (binary_expression "uVar8 & 0x40" (identifier "uVar8") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);\n        }" ({ "{") (expression_statement "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);" (assignment_expression "pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" (identifier "pcVar6") (= "=") (cast_expression "(char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "array_reference(*(undefined4 *)(iVar5 + 4),0,0)" (identifier "array_reference") (argument_list "(*(undefined4 *)(iVar5 + 4),0,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" (else "else") (compound_statement "{\n          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);\n        }" ({ "{") (expression_statement "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);" (assignment_expression "pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" (identifier "pcVar6") (= "=") (cast_expression "(char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" (identifier "assoc_reference") (argument_list "(*(undefined4 *)(iVar5 + 4),&DAT_00102cee)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "&DAT_00102cee" (& "&") (identifier "DAT_00102cee")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_00075f00;" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00075f00;" (goto "goto") (statement_identifier "LAB_00075f00") (; ";"))) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" (identifier "sVar4") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (sVar4 < 2) {\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }\n        else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" (if "if") (parenthesized_expression "(sVar4 < 2)" (( "(") (binary_expression "sVar4 < 2" (identifier "sVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }\n        }" ({ "{") (if_statement "if (*pcVar6 != '\0') {\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" (if "if") (parenthesized_expression "(*pcVar6 != '\0')" (( "(") (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_40 = 0;\n            sVar4 = 1;\n            if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }\n            goto LAB_00075b32;\n          }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pcVar6[1] != '\0') {\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" (if "if") (parenthesized_expression "(pcVar6[1] != '\0')" (( "(") (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }\n            }" ({ "{") (if_statement "if (pcVar6[2] == '\0') {\n                sVar4 = 2;\n                local_40 = 0;\n              }\n              else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" (if "if") (parenthesized_expression "(pcVar6[2] == '\0')" (( "(") (binary_expression "pcVar6[2] == '\0'" (subscript_expression "pcVar6[2]" (identifier "pcVar6") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                sVar4 = 2;\n                local_40 = 0;\n              }" ({ "{") (expression_statement "sVar4 = 2;" (assignment_expression "sVar4 = 2" (identifier "sVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" (else "else") (compound_statement "{\n                uVar8 = 0xffffffff;\n                local_40 = 0;\n                do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');\n                sVar4 = ~uVar8 - 1;\n              }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                } while (cVar3 != '\0');" (do "do") (compound_statement "{\n                  if (uVar8 == 0) break;\n                  uVar8 = uVar8 - 1;\n                  cVar3 = *pcVar6;\n                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;\n                }" ({ "{") (if_statement "if (uVar8 == 0) break;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" (identifier "cVar3") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (uint)bVar11 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar11 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "sVar4 = ~uVar8 - 1;" (assignment_expression "sVar4 = ~uVar8 - 1" (identifier "sVar4") (= "=") (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" (~ "~") (identifier "uVar8")) (- "-") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" (else "else") (if_statement "if (*pcVar6 != '\0') {\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" (if "if") (parenthesized_expression "(*pcVar6 != '\0')" (( "(") (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_40 = 0;\n          sVar4 = 1;\n          if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }\n          goto LAB_00075b32;\n        }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pcVar6[1] != '\0') {\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" (if "if") (parenthesized_expression "(pcVar6[1] != '\0')" (( "(") (binary_expression "pcVar6[1] != '\0'" (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            sVar4 = mbstrlen(pcVar6);\n            local_40 = 0;\n          }" ({ "{") (expression_statement "sVar4 = mbstrlen(pcVar6);" (assignment_expression "sVar4 = mbstrlen(pcVar6)" (identifier "sVar4") (= "=") (call_expression "mbstrlen(pcVar6)" (identifier "mbstrlen") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))))) (} "}")))) (goto_statement "goto LAB_00075e08;" (goto "goto") (statement_identifier "LAB_00075e08") (; ";")) (} "}"))) (expression_statement "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);" (assignment_expression "unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28)" (identifier "unaff_ESI") (= "=") (cast_expression "(char *)get_dollar_var_value(local_2c,local_28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "get_dollar_var_value(local_2c,local_28)" (identifier "get_dollar_var_value") (argument_list "(local_2c,local_28)" (( "(") (identifier "local_2c") (, ",") (identifier "local_28") () ")"))))) (; ";")) (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" (if "if") (parenthesized_expression "(unaff_ESI == (char *)0x0)" (( "(") (binary_expression "unaff_ESI == (char *)0x0" (identifier "unaff_ESI") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }\n      goto LAB_00075b32;\n    }" ({ "{") (labeled_statement "LAB_00075f00:\n      if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" (statement_identifier "LAB_00075f00") (: ":") (if_statement "if (unbound_vars_is_error == 0) {\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }\n      else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" (if "if") (parenthesized_expression "(unbound_vars_is_error == 0)" (( "(") (binary_expression "unbound_vars_is_error == 0" (identifier "unbound_vars_is_error") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        __ctype_get_mb_cur_max();\n        sVar4 = 0;\n        local_40 = 0;\n      }" ({ "{") (expression_statement "__ctype_get_mb_cur_max();" (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" (else "else") (compound_statement "{\n        sVar4 = 0;\n        local_40 = -0x80000000;\n      }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = -0x80000000;" (assignment_expression "local_40 = -0x80000000" (identifier "local_40") (= "=") (number_literal "-0x80000000")) (; ";")) (} "}"))))) (goto_statement "goto LAB_00075b32;" (goto "goto") (statement_identifier "LAB_00075b32") (; ";")) (} "}"))) (expression_statement "sVar4 = __ctype_get_mb_cur_max();" (assignment_expression "sVar4 = __ctype_get_mb_cur_max()" (identifier "sVar4") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (sVar4 < 2) {\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" (if "if") (parenthesized_expression "(sVar4 < 2)" (( "(") (binary_expression "sVar4 < 2" (identifier "sVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }\n      goto LAB_00075e36;\n    }" ({ "{") (if_statement "if (*unaff_ESI == '\0') {\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" (if "if") (parenthesized_expression "(*unaff_ESI == '\0')" (( "(") (binary_expression "*unaff_ESI == '\0'" (pointer_expression "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        sVar4 = 0;\n        goto LAB_00075dd0;\n      }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00075dd0;" (goto "goto") (statement_identifier "LAB_00075dd0") (; ";")) (} "}"))) (goto_statement "goto LAB_00075e36;" (goto "goto") (statement_identifier "LAB_00075e36") (; ";")) (} "}"))) (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {\n      sVar4 = mbstrlen(unaff_ESI);\n    }" (if "if") (parenthesized_expression "((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0'))" (( "(") (binary_expression "(*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')" (parenthesized_expression "(*unaff_ESI != '\0')" (( "(") (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 = 1, unaff_ESI[1] != '\0')" (( "(") (comma_expression "sVar4 = 1, unaff_ESI[1] != '\0'" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (, ",") (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" (identifier "unaff_ESI") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      sVar4 = mbstrlen(unaff_ESI);\n    }" ({ "{") (expression_statement "sVar4 = mbstrlen(unaff_ESI);" (assignment_expression "sVar4 = mbstrlen(unaff_ESI)" (identifier "sVar4") (= "=") (call_expression "mbstrlen(unaff_ESI)" (identifier "mbstrlen") (argument_list "(unaff_ESI)" (( "(") (identifier "unaff_ESI") () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00075dd0;" (goto "goto") (statement_identifier "LAB_00075dd0") (; ";")) (} "}"))) (switch_statement "switch(bVar2) {\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" (switch "switch") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n  case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;\n  default:\n    goto LAB_00075e29;\n  case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;\n  case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;\n  case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;\n  case 0x3f:\n    iVar5 = last_command_exit_value;\n  }" ({ "{") (case_statement "case 0x21:\n    iVar5 = last_asynchronous_pid;\n    if (last_asynchronous_pid == -1) goto LAB_00075e08;\n    break;" (case "case") (number_literal "0x21") (: ":") (expression_statement "iVar5 = last_asynchronous_pid;" (assignment_expression "iVar5 = last_asynchronous_pid" (identifier "iVar5") (= "=") (identifier "last_asynchronous_pid")) (; ";")) (if_statement "if (last_asynchronous_pid == -1) goto LAB_00075e08;" (if "if") (parenthesized_expression "(last_asynchronous_pid == -1)" (( "(") (binary_expression "last_asynchronous_pid == -1" (identifier "last_asynchronous_pid") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00075e08;" (goto "goto") (statement_identifier "LAB_00075e08") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto LAB_00075e29;" (default "default") (: ":") (goto_statement "goto LAB_00075e29;" (goto "goto") (statement_identifier "LAB_00075e29") (; ";"))) (case_statement "case 0x23:\n    iVar5 = 0;\n    do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);\n    piVar9 = rest_of_args;\n    if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }\n    break;" (case "case") (number_literal "0x23") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    } while (iVar10 != 9);" (do "do") (compound_statement "{\n      iVar10 = iVar5 + 1;\n      if ((&dollar_vars)[iVar10] == 0) break;\n      iVar5 = iVar10;\n    }" ({ "{") (expression_statement "iVar10 = iVar5 + 1;" (assignment_expression "iVar10 = iVar5 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((&dollar_vars)[iVar10] == 0) break;" (if "if") (parenthesized_expression "((&dollar_vars)[iVar10] == 0)" (( "(") (binary_expression "(&dollar_vars)[iVar10] == 0" (subscript_expression "(&dollar_vars)[iVar10]" (parenthesized_expression "(&dollar_vars)" (( "(") (pointer_expression "&dollar_vars" (& "&") (identifier "dollar_vars")) () ")")) ([ "[") (identifier "iVar10") (] "]")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar10;" (assignment_expression "iVar5 = iVar10" (identifier "iVar5") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 9)" (( "(") (binary_expression "iVar10 != 9" (identifier "iVar10") (!= "!=") (number_literal "9")) () ")")) (; ";")) (expression_statement "piVar9 = rest_of_args;" (assignment_expression "piVar9 = rest_of_args" (identifier "piVar9") (= "=") (identifier "rest_of_args")) (; ";")) (if_statement "if (rest_of_args != (int *)0x0) {\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" (if "if") (parenthesized_expression "(rest_of_args != (int *)0x0)" (( "(") (binary_expression "rest_of_args != (int *)0x0" (identifier "rest_of_args") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);\n    }" ({ "{") (do_statement "do {\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      } while (piVar9 != (int *)0x0);" (do "do") (compound_statement "{\n        piVar9 = (int *)*piVar9;\n        iVar5 = iVar5 + 1;\n      }" ({ "{") (expression_statement "piVar9 = (int *)*piVar9;" (assignment_expression "piVar9 = (int *)*piVar9" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x24:\n    iVar5 = dollar_dollar_pid;\n    break;" (case "case") (number_literal "0x24") (: ":") (expression_statement "iVar5 = dollar_dollar_pid;" (assignment_expression "iVar5 = dollar_dollar_pid" (identifier "iVar5") (= "=") (identifier "dollar_dollar_pid")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2d:\n    unaff_ESI = (char *)which_set_flags();\n    goto LAB_00075e29;" (case "case") (number_literal "0x2d") (: ":") (expression_statement "unaff_ESI = (char *)which_set_flags();" (assignment_expression "unaff_ESI = (char *)which_set_flags()" (identifier "unaff_ESI") (= "=") (cast_expression "(char *)which_set_flags()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "which_set_flags()" (identifier "which_set_flags") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_00075e29;" (goto "goto") (statement_identifier "LAB_00075e29") (; ";"))) (case_statement "case 0x3f:\n    iVar5 = last_command_exit_value;" (case "case") (number_literal "0x3f") (: ":") (expression_statement "iVar5 = last_command_exit_value;" (assignment_expression "iVar5 = last_command_exit_value" (identifier "iVar5") (= "=") (identifier "last_command_exit_value")) (; ";"))) (} "}"))) (expression_statement "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);" (assignment_expression "unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f)" (identifier "unaff_ESI") (= "=") (cast_expression "(char *)itos(iVar5,iVar5 >> 0x1f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "itos(iVar5,iVar5 >> 0x1f)" (identifier "itos") (argument_list "(iVar5,iVar5 >> 0x1f)" (( "(") (identifier "iVar5") (, ",") (binary_expression "iVar5 >> 0x1f" (identifier "iVar5") (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (labeled_statement "LAB_00075e29:\n  if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" (statement_identifier "LAB_00075e29") (: ":") (if_statement "if (unaff_ESI == (char *)0x0) {\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }\n  else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" (if "if") (parenthesized_expression "(unaff_ESI == (char *)0x0)" (( "(") (binary_expression "unaff_ESI == (char *)0x0" (identifier "unaff_ESI") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00075e08:\n    sVar4 = 0;\n    local_40 = 0;\n  }" ({ "{") (labeled_statement "LAB_00075e08:\n    sVar4 = 0;" (statement_identifier "LAB_00075e08") (: ":") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" (else "else") (compound_statement "{\n    sVar4 = 0;\n    if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }\nLAB_00075dd0:\n    local_40 = 0;\n    free(unaff_ESI);\n  }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*unaff_ESI != '\0') {\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" (if "if") (parenthesized_expression "(*unaff_ESI != '\0')" (( "(") (binary_expression "*unaff_ESI != '\0'" (pointer_expression "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00075e36:\n      sVar4 = 1;\n      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }\n    }" ({ "{") (labeled_statement "LAB_00075e36:\n      sVar4 = 1;" (statement_identifier "LAB_00075e36") (: ":") (expression_statement "sVar4 = 1;" (assignment_expression "sVar4 = 1" (identifier "sVar4") (= "=") (number_literal "1")) (; ";"))) (if_statement "if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {\n        sVar4 = strlen(unaff_ESI);\n      }" (if "if") (parenthesized_expression "((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0'))" (( "(") (binary_expression "(unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')" (parenthesized_expression "(unaff_ESI[1] != '\0')" (( "(") (binary_expression "unaff_ESI[1] != '\0'" (subscript_expression "unaff_ESI[1]" (identifier "unaff_ESI") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 = 2, unaff_ESI[2] != '\0')" (( "(") (comma_expression "sVar4 = 2, unaff_ESI[2] != '\0'" (assignment_expression "sVar4 = 2" (identifier "sVar4") (= "=") (number_literal "2")) (, ",") (binary_expression "unaff_ESI[2] != '\0'" (subscript_expression "unaff_ESI[2]" (identifier "unaff_ESI") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        sVar4 = strlen(unaff_ESI);\n      }" ({ "{") (expression_statement "sVar4 = strlen(unaff_ESI);" (assignment_expression "sVar4 = strlen(unaff_ESI)" (identifier "sVar4") (= "=") (call_expression "strlen(unaff_ESI)" (identifier "strlen") (argument_list "(unaff_ESI)" (( "(") (identifier "unaff_ESI") () ")")))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00075dd0:\n    local_40 = 0;" (statement_identifier "LAB_00075dd0") (: ":") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";"))) (expression_statement "free(unaff_ESI);" (call_expression "free(unaff_ESI)" (identifier "free") (argument_list "(unaff_ESI)" (( "(") (identifier "unaff_ESI") () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_00075b32:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\n  }" (statement_identifier "LAB_00075b32") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CONCAT44(local_40,sVar4);\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(local_40,sVar4);\n  }" ({ "{") (return_statement "return CONCAT44(local_40,sVar4);" (return "return") (call_expression "CONCAT44(local_40,sVar4)" (identifier "CONCAT44") (argument_list "(local_40,sVar4)" (( "(") (identifier "local_40") (, ",") (identifier "sVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" (identifier "FUN_000ecc40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

type_1 __regparm3 function_1(char *var_6)

{
  size_t var_4;
  int var_43;
  type_2 *puVar3;
  type_3 var_2;
  char var_13;
  type_4 **ppwVar6;
  size_t var_3;
  int var_8;
  type_5 *var_10;
  type_6 *var_16;
  char *var_19;
  size_t var_30;
  char *var_39;
  type_2 var_11;
  type_4 *pwVar14;
  char *var_41;
  type_7 *var_23;
  int var_1;
  type_3 bVar15;
  type_8 var_25;
  int local_40;
  int var_14;
  type_1 arg_index;
  int var_46;
  type_9 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x75adb;
  var_46 = *(int *)(var_1 + 0x14);
  var_2 = var_6[1];
  if (var_2 == 0) {
    var_3 = 0;
    do {
      var_4 = var_3 + 1;
      if ((&dollar_vars)[var_4] == 0) break;
      var_3 = var_4;
    } while (var_4 != 9);
    pwVar14 = var_5;
    if (var_5 != (type_6 *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        var_3 = var_3 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (type_4 *)0x0);
    }
LAB_00075b31:
    local_40 = (int)var_3 >> 0x1f;
    goto LAB_00075b32;
  }
  if ((var_2 == 0x40) || (var_2 == 0x2a)) {
    if (var_6[2] != '\0') goto LAB_00075b9a;
    var_3 = 0;
    do {
      var_4 = var_3 + 1;
      if ((&dollar_vars)[var_4] == 0) break;
      var_3 = var_4;
    } while (var_4 != 9);
    pwVar14 = var_5;
    if (var_5 != (type_6 *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        var_3 = var_3 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (type_4 *)0x0);
    }
    goto LAB_00075b31;
  }
  if (((*(type_3 *)((int)&sh_syntaxtab + (type_2)var_2 * 4 + 1) & 8) == 0) || (var_6[2] != '\0')) {
LAB_00075b9a:
    var_19 = var_6 + 1;
    var_8 = var_7(var_19,0);
    if (var_8 != 0) {
      var_10 = var_9(var_19,0,(char **)&arg_index,&var_14);
      if ((var_10 == (type_5 *)0x0) || (var_11 = var_10->attributes, (var_11 & 0x1000) != 0)) {
        if (var_12 == 0) goto LAB_00075e08;
      }
      else if (((var_11 & 0x44) != 0) || (var_12 == 0)) {
        var_23 = (type_7 *)0x0;
        if ((var_11 & 4) != 0) {
          var_23 = (type_7 *)var_10->value;
        }
        var_13 = *(char *)arg_index;
        if ((var_11 & 0x40) != 0) {
          if ((var_13 != '*' && var_13 != '@') || (((char *)arg_index)[1] != ']')) {
            ((char *)arg_index)[var_14 + -1] = '\0';
            if ((char *)arg_index == (char *)0x0) {
              *(type_10 *)(var_14 + -1) = 0x5d;
            }
            else if (*(char *)arg_index == '\0') {
              ((char *)arg_index)[var_14 + -1] = ']';
            }
            else {
              var_16 = var_15((char *)arg_index,0);
              if (var_16 == (type_6 *)0x0) {
                ((char *)arg_index)[var_14 + -1] = ']';
              }
              else {
                var_19 = var_17(var_16," ");
                var_18(var_16);
                ((char *)arg_index)[var_14 + -1] = ']';
                if (var_19 != (char *)0x0) {
                  if (*var_19 == '\0') {
                    var_20((char *)arg_index);
                    var_21(var_19);
                    var_3 = 0xffffffff;
                    local_40 = -1;
                    goto LAB_00075b32;
                  }
                  arg_index._0_4_ = var_22((type_11 *)var_10->value,var_19);
                  var_21(var_19);
                  goto LAB_00075cba;
                }
              }
            }
            goto LAB_000761ab;
          }
          if (var_10->value != (char *)0x0) {
            var_3 = *(size_t *)(var_10->value + 8);
            goto LAB_00075b31;
          }
          goto LAB_00075e08;
        }
        if ((var_13 == '*' || var_13 == '@') && (((char *)arg_index)[1] == ']')) {
          if ((var_11 & 4) == 0) {
            var_3 = (size_t)(var_10->value != (char *)0x0);
            local_40 = 0;
          }
          else {
            var_3 = 0;
            local_40 = 0;
            if (var_23 != (type_7 *)0x0) {
              var_3 = var_23->num_elements;
              local_40 = (int)var_3 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
        var_25 = var_24(var_10,(char *)arg_index,var_14,0);
        if ((var_10->attributes & 4) == 0) {
          if (var_25 < 0) goto LAB_000761ab;
          arg_index._0_4_ = (char *)0x0;
          if (var_25 == 0) {
            arg_index._0_4_ = var_10->value;
          }
        }
        else {
          if ((var_25 < 0) &&
             (puVar3 = (type_2 *)(var_10->value + 4), var_11 = (type_2)var_25 + *puVar3,
             var_8 = (int)((type_12)var_25 >> 0x20) + *(int *)(var_10->value + 8) +
                     (type_2)var_26((type_2)var_25,*puVar3) + (type_2)(0xfffffffe < var_11),
             var_25 = var_27(var_8,var_11 + 1), var_8 < 0)) {
LAB_000761ab:
            var_20((char *)arg_index);
            var_3 = 0xffffffff;
            local_40 = -1;
            goto LAB_00075b32;
          }
          arg_index._0_4_ = var_28(var_23,var_25);
        }
LAB_00075cba:
        var_30 = var_29();
        local_40 = 0;
        var_3 = 0;
        if (var_30 < 2) {
          if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {
            local_40 = 0;
            var_3 = 1;
            if (((char *)arg_index)[1] != '\0') {
              local_40 = 0;
              var_3 = 2;
              if (((char *)arg_index)[2] != '\0') {
                var_3 = var_31((char *)arg_index);
                local_40 = 0;
              }
            }
          }
        }
        else if (((char *)arg_index != (char *)0x0) && (*(char *)arg_index != '\0')) {
          local_40 = 0;
          var_3 = 1;
          if (((char *)arg_index)[1] != '\0') {
            var_3 = var_32((char *)arg_index);
            local_40 = (int)var_3 >> 0x1f;
          }
        }
        goto LAB_00075b32;
      }
      var_13 = ((char *)arg_index)[-1];
      ((char *)arg_index)[-1] = '\0';
      last_command_exit_value = 1;
      arg_index._0_4_ = (char *)arg_index + -1;
      var_33(var_19);
      *(char *)arg_index = var_13;
      var_3 = 0xffffffff;
      local_40 = -1;
      goto LAB_00075b32;
    }
    var_8 = var_34(var_19,&arg_index);
    if (var_8 == 0) {
      var_10 = var_35(var_19);
      if (((var_10 == (type_5 *)0x0) || (var_11 = var_10->attributes, (var_11 & 0x1000) != 0)) ||
         ((var_11 & 0x44) == 0)) {
        var_30 = var_31(var_6);
        var_19 = (char *)var_36(var_30 + 1);
        var_19 = var_37(var_19,var_6);
        *var_19 = '$';
        var_16 = var_38(var_19,1);
        if (var_16 == (type_6 *)0x0) {
          var_21(var_19);
        }
        else {
          var_39 = var_17(var_16," ");
          var_21(var_19);
          var_18(var_16);
          if (var_39 != (char *)0x0) {
            var_30 = var_29();
            var_3 = 0;
            if (var_30 < 2) {
              if (((*var_39 != '\0') && (var_3 = 1, var_39[1] != '\0')) && (var_3 = 2, var_39[2] != '\0')) {
                var_3 = var_31(var_39);
              }
            }
            else if ((*var_39 != '\0') && (var_3 = 1, var_39[1] != '\0')) {
              var_3 = var_32(var_39);
            }
            var_21(var_39);
            local_40 = 0;
            goto LAB_00075b32;
          }
        }
      }
      else {
        if ((var_11 & 0x40) == 0) {
          var_19 = var_28((type_7 *)var_10->value,0);
        }
        else {
          var_19 = var_22((type_11 *)var_10->value,"0");
        }
        if (var_19 == (char *)0x0) goto LAB_00075f00;
        var_30 = var_29();
        if (var_30 < 2) {
          if (*var_19 != '\0') {
            local_40 = 0;
            var_3 = 1;
            if (var_19[1] != '\0') {
              if (var_19[2] == '\0') {
                var_3 = 2;
                local_40 = 0;
              }
              else {
                var_11 = 0xffffffff;
                local_40 = 0;
                do {
                  if (var_11 == 0) break;
                  var_11 = var_11 - 1;
                  var_13 = *var_19;
                  var_19 = var_19 + (type_2)bVar15 * -2 + 1;
                } while (var_13 != '\0');
                var_3 = ~var_11 - 1;
              }
            }
            goto LAB_00075b32;
          }
        }
        else if (*var_19 != '\0') {
          local_40 = 0;
          var_3 = 1;
          if (var_19[1] != '\0') {
            var_3 = var_32(var_19);
            local_40 = 0;
          }
          goto LAB_00075b32;
        }
      }
      goto LAB_00075e08;
    }
    var_41 = var_40(var_27(arg_index._4_4_,(char *)arg_index));
    if (var_41 == (char *)0x0) {
LAB_00075f00:
      if (var_12 == 0) {
        var_29();
        var_3 = 0;
        local_40 = 0;
      }
      else {
        var_3 = 0;
        local_40 = -0x80000000;
      }
      goto LAB_00075b32;
    }
    var_30 = var_29();
    if (var_30 < 2) {
      if (*var_41 == '\0') {
        var_3 = 0;
        goto LAB_00075dd0;
      }
      goto LAB_00075e36;
    }
    var_3 = 0;
    if ((*var_41 != '\0') && (var_3 = 1, var_41[1] != '\0')) {
      var_3 = var_32(var_41);
    }
    goto LAB_00075dd0;
  }
  switch(var_2) {
  case 0x21:
    var_8 = var_42;
    if (var_42 == -1) goto LAB_00075e08;
    break;
  default:
    goto _L5403;
  case 0x23:
    var_8 = 0;
    do {
      var_43 = var_8 + 1;
      if ((&dollar_vars)[var_43] == 0) break;
      var_8 = var_43;
    } while (var_43 != 9);
    pwVar14 = var_5;
    if (var_5 != (type_6 *)0x0) {
      do {
        ppwVar6 = &pwVar14->next;
        var_8 = var_8 + 1;
        pwVar14 = *ppwVar6;
      } while (*ppwVar6 != (type_4 *)0x0);
    }
    break;
  case 0x24:
    var_8 = dollar_dollar_pid;
    break;
  case 0x2d:
    var_41 = var_44();
    goto _L5403;
  case 0x3f:
    var_8 = last_command_exit_value;
  }
  var_41 = var_45((type_13)var_8);
_L5403:
  if (var_41 == (char *)0x0) {
LAB_00075e08:
    var_3 = 0;
    local_40 = 0;
  }
  else {
    var_3 = 0;
    if (*var_41 != '\0') {
LAB_00075e36:
      var_3 = 1;
      if ((var_41[1] != '\0') && (var_3 = 2, var_41[2] != '\0')) {
        var_3 = var_31(var_41);
      }
    }
LAB_00075dd0:
    local_40 = 0;
    var_21(var_41);
  }
LAB_00075b32:
  if (var_46 == *(int *)(var_1 + 0x14)) {
    return var_27(local_40,var_3);
  }
                    /* WARNING: Subroutine does not return */
  var_47();
}


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

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

undefined8 __regparm3 MASKED(char *param_1)

{
  uint *puVar1;
  byte bVar2;
  char cVar3;
  size_t sVar4;
  int iVar5;
  char *pcVar6;
  size_t sVar7;
  char *__s;
  uint uVar8;
  int *piVar9;
  char *unaff_ESI;
  int iVar10;
  int in_GS_OFFSET;
  byte bVar11;
  longlong lVar12;
  int local_40;
  int local_30;
  char *local_2c;
  undefined4 local_28;
  int local_20;
  undefined4 uStack_14;
  
  bVar11 = 0;
  uStack_14 = 0x75adb;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  bVar2 = param_1[1];
  if (bVar2 == 0) {
    sVar4 = 0;
    do {
      sVar7 = sVar4 + 1;
      if ((&dollar_vars)[sVar7] == 0) break;
      sVar4 = sVar7;
    } while (sVar7 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        sVar4 = sVar4 + 1;
      } while (piVar9 != (int *)0x0);
    }
LAB_00075b31:
    local_40 = (int)sVar4 >> 0x1f;
    goto LAB_00075b32;
  }
  if ((bVar2 == 0x40) || (bVar2 == 0x2a)) {
    if (param_1[2] != '\0') goto LAB_00075b9a;
    sVar4 = 0;
    do {
      sVar7 = sVar4 + 1;
      if ((&dollar_vars)[sVar7] == 0) break;
      sVar4 = sVar7;
    } while (sVar7 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        sVar4 = sVar4 + 1;
      } while (piVar9 != (int *)0x0);
    }
    goto LAB_00075b31;
  }
  if (((*(byte *)((int)&sh_syntaxtab + (uint)bVar2 * 4 + 1) & 8) == 0) || (param_1[2] != '\0')) {
LAB_00075b9a:
    pcVar6 = param_1 + 1;
    iVar5 = valid_array_reference(pcVar6,0);
    if (iVar5 != 0) {
      iVar5 = array_variable_part(pcVar6,0,&local_2c,&local_30);
      if ((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) {
        if (unbound_vars_is_error == 0) goto LAB_00075e08;
      }
      else if (((uVar8 & 0x44) != 0) || (unbound_vars_is_error == 0)) {
        iVar10 = 0;
        if ((uVar8 & 4) != 0) {
          iVar10 = *(int *)(iVar5 + 4);
        }
        cVar3 = *local_2c;
        if ((uVar8 & 0x40) != 0) {
          if ((cVar3 != '*' && cVar3 != '@') || (local_2c[1] != ']')) {
            local_2c[local_30 + -1] = '\0';
            if (local_2c == (char *)0x0) {
              *(undefined1 *)(local_30 + -1) = 0x5d;
            }
            else if (*local_2c == '\0') {
              local_2c[local_30 + -1] = ']';
            }
            else {
              iVar10 = expand_string_assignment(local_2c,0);
              if (iVar10 == 0) {
                local_2c[local_30 + -1] = ']';
              }
              else {
                pcVar6 = (char *)string_list_internal(iVar10,&DAT_000f08bf);
                dispose_words(iVar10);
                local_2c[local_30 + -1] = ']';
                if (pcVar6 != (char *)0x0) {
                  if (*pcVar6 == '\0') {
                    err_badarraysub(local_2c);
                    free(pcVar6);
                    sVar4 = 0xffffffff;
                    local_40 = -1;
                    goto LAB_00075b32;
                  }
                  local_2c = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),pcVar6);
                  free(pcVar6);
                  goto LAB_00075cba;
                }
              }
            }
            goto LAB_000761ab;
          }
          if (*(int *)(iVar5 + 4) != 0) {
            sVar4 = *(size_t *)(*(int *)(iVar5 + 4) + 8);
            goto LAB_00075b31;
          }
          goto LAB_00075e08;
        }
        if ((cVar3 == '*' || cVar3 == '@') && (local_2c[1] == ']')) {
          if ((uVar8 & 4) == 0) {
            sVar4 = (size_t)(*(int *)(iVar5 + 4) != 0);
            local_40 = 0;
          }
          else {
            sVar4 = 0;
            local_40 = 0;
            if (iVar10 != 0) {
              sVar4 = *(size_t *)(iVar10 + 0xc);
              local_40 = (int)sVar4 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
        lVar12 = array_expand_index(iVar5,local_2c,local_30,0);
        if ((*(byte *)(iVar5 + 0x14) & 4) == 0) {
          if (-1 < lVar12) {
            local_2c = (char *)0x0;
            if (lVar12 == 0) {
              local_2c = *(char **)(iVar5 + 4);
            }
            goto LAB_00075cba;
          }
        }
        else if ((-1 < lVar12) ||
                (puVar1 = (uint *)(*(int *)(iVar5 + 4) + 4), uVar8 = (uint)lVar12 + *puVar1,
                iVar5 = (int)((ulonglong)lVar12 >> 0x20) + *(int *)(*(int *)(iVar5 + 4) + 8) +
                        (uint)CARRY4((uint)lVar12,*puVar1) + (uint)(0xfffffffe < uVar8),
                lVar12 = CONCAT44(iVar5,uVar8 + 1), -1 < iVar5)) {
          local_2c = (char *)array_reference(iVar10,lVar12);
LAB_00075cba:
          sVar7 = __ctype_get_mb_cur_max();
          local_40 = 0;
          sVar4 = 0;
          if (sVar7 < 2) {
            if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {
              local_40 = 0;
              sVar4 = 1;
              if (local_2c[1] != '\0') {
                local_40 = 0;
                sVar4 = 2;
                if (local_2c[2] != '\0') {
                  sVar4 = strlen(local_2c);
                  local_40 = 0;
                }
              }
            }
          }
          else if ((local_2c != (char *)0x0) && (*local_2c != '\0')) {
            local_40 = 0;
            sVar4 = 1;
            if (local_2c[1] != '\0') {
              sVar4 = mbstrlen(local_2c);
              local_40 = (int)sVar4 >> 0x1f;
            }
          }
          goto LAB_00075b32;
        }
LAB_000761ab:
        err_badarraysub(local_2c);
        sVar4 = 0xffffffff;
        local_40 = -1;
        goto LAB_00075b32;
      }
      cVar3 = local_2c[-1];
      local_2c[-1] = '\0';
      last_command_exit_value = 1;
      local_2c = local_2c + -1;
      err_unboundvar(pcVar6);
      *local_2c = cVar3;
      sVar4 = 0xffffffff;
      local_40 = -1;
      goto LAB_00075b32;
    }
    iVar5 = legal_number(pcVar6,&local_2c);
    if (iVar5 == 0) {
      iVar5 = find_variable(pcVar6);
      if (((iVar5 == 0) || (uVar8 = *(uint *)(iVar5 + 0x14), (uVar8 & 0x1000) != 0)) ||
         ((uVar8 & 0x44) == 0)) {
        sVar4 = strlen(param_1);
        pcVar6 = (char *)xmalloc(sVar4 + 1);
        pcVar6 = strcpy(pcVar6,param_1);
        *pcVar6 = '$';
        iVar5 = FUN_0006f720();
        if (iVar5 == 0) {
          free(pcVar6);
        }
        else {
          __s = (char *)string_list_internal(iVar5,&DAT_000f08bf);
          free(pcVar6);
          dispose_words(iVar5);
          if (__s != (char *)0x0) {
            sVar7 = __ctype_get_mb_cur_max();
            sVar4 = 0;
            if (sVar7 < 2) {
              if (((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) && (sVar4 = 2, __s[2] != '\0')) {
                sVar4 = strlen(__s);
              }
            }
            else if ((*__s != '\0') && (sVar4 = 1, __s[1] != '\0')) {
              sVar4 = mbstrlen(__s);
            }
            free(__s);
            local_40 = 0;
            goto LAB_00075b32;
          }
        }
      }
      else {
        if ((uVar8 & 0x40) == 0) {
          pcVar6 = (char *)array_reference(*(undefined4 *)(iVar5 + 4),0,0);
        }
        else {
          pcVar6 = (char *)assoc_reference(*(undefined4 *)(iVar5 + 4),&DAT_00102cee);
        }
        if (pcVar6 == (char *)0x0) goto LAB_00075f00;
        sVar4 = __ctype_get_mb_cur_max();
        if (sVar4 < 2) {
          if (*pcVar6 != '\0') {
            local_40 = 0;
            sVar4 = 1;
            if (pcVar6[1] != '\0') {
              if (pcVar6[2] == '\0') {
                sVar4 = 2;
                local_40 = 0;
              }
              else {
                uVar8 = 0xffffffff;
                local_40 = 0;
                do {
                  if (uVar8 == 0) break;
                  uVar8 = uVar8 - 1;
                  cVar3 = *pcVar6;
                  pcVar6 = pcVar6 + (uint)bVar11 * -2 + 1;
                } while (cVar3 != '\0');
                sVar4 = ~uVar8 - 1;
              }
            }
            goto LAB_00075b32;
          }
        }
        else if (*pcVar6 != '\0') {
          local_40 = 0;
          sVar4 = 1;
          if (pcVar6[1] != '\0') {
            sVar4 = mbstrlen(pcVar6);
            local_40 = 0;
          }
          goto LAB_00075b32;
        }
      }
      goto LAB_00075e08;
    }
    unaff_ESI = (char *)get_dollar_var_value(local_2c,local_28);
    if (unaff_ESI == (char *)0x0) {
LAB_00075f00:
      if (unbound_vars_is_error == 0) {
        __ctype_get_mb_cur_max();
        sVar4 = 0;
        local_40 = 0;
      }
      else {
        sVar4 = 0;
        local_40 = -0x80000000;
      }
      goto LAB_00075b32;
    }
    sVar4 = __ctype_get_mb_cur_max();
    if (sVar4 < 2) {
      if (*unaff_ESI == '\0') {
        sVar4 = 0;
        goto LAB_00075dd0;
      }
      goto LAB_00075e36;
    }
    sVar4 = 0;
    if ((*unaff_ESI != '\0') && (sVar4 = 1, unaff_ESI[1] != '\0')) {
      sVar4 = mbstrlen(unaff_ESI);
    }
    goto LAB_00075dd0;
  }
  switch(bVar2) {
  case 0x21:
    iVar5 = last_asynchronous_pid;
    if (last_asynchronous_pid == -1) goto LAB_00075e08;
    break;
  default:
    goto LAB_00075e29;
  case 0x23:
    iVar5 = 0;
    do {
      iVar10 = iVar5 + 1;
      if ((&dollar_vars)[iVar10] == 0) break;
      iVar5 = iVar10;
    } while (iVar10 != 9);
    piVar9 = rest_of_args;
    if (rest_of_args != (int *)0x0) {
      do {
        piVar9 = (int *)*piVar9;
        iVar5 = iVar5 + 1;
      } while (piVar9 != (int *)0x0);
    }
    break;
  case 0x24:
    iVar5 = dollar_dollar_pid;
    break;
  case 0x2d:
    unaff_ESI = (char *)which_set_flags();
    goto LAB_00075e29;
  case 0x3f:
    iVar5 = last_command_exit_value;
  }
  unaff_ESI = (char *)itos(iVar5,iVar5 >> 0x1f);
LAB_00075e29:
  if (unaff_ESI == (char *)0x0) {
LAB_00075e08:
    sVar4 = 0;
    local_40 = 0;
  }
  else {
    sVar4 = 0;
    if (*unaff_ESI != '\0') {
LAB_00075e36:
      sVar4 = 1;
      if ((unaff_ESI[1] != '\0') && (sVar4 = 2, unaff_ESI[2] != '\0')) {
        sVar4 = strlen(unaff_ESI);
      }
    }
LAB_00075dd0:
    local_40 = 0;
    free(unaff_ESI);
  }
LAB_00075b32:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CONCAT44(local_40,sVar4);
  }
                    /* WARNING: Subroutine does not return */
  FUN_000ecc40();
}

